基本步驟:
三種基本結構:順序、選擇、迴圈
程式檔案拓展名:.m吧
指令碼檔案(也叫命令檔案)、函式檔案
指令碼檔案
呼叫: 在命令列視窗輸入檔名
函式檔案
呼叫:直接在命令列視窗呼叫函式,函式檔名與函式名要一致
工作的目錄必須一致
cd命令查詢目前所在資料夾,cd e:\資料夾修改所在資料夾
檔案的建立
順序結構
資料的輸入
a=input(提示資訊,選項);
>>a=input('請輸入變數a的值:');
資料的輸出
disp
>>s='ddd';
>>disp(s)
ddd>>a=[1,2,3;4,5,6;];
>>disp(a)
1 2 3
4 5 6
程式的暫停
pause(延遲秒數)
若要強制中止程式:ctrl+c
單分支if語句
if 條件
語句組
end條件結果為 標量,非零表示條件成立
結果為矩陣,如矩陣非空,且不包含零元素,則條件成立
雙分支if語句
if 條件
語句組1
else
語句組2
end例 輸入乙個整數,若為奇數則輸出其平方根,否則輸出其立方根
x=input('x=');
if rem(x,2)==1 %可寫為 rem(x,2)
y=sqrt(x);
else
y=x^(1/3); %power(x,1/3)
endy
多分支if語句
elseif
例
c=input('s=');
if c>='a'&&c<='z'
disp(lower(c))
elseif c>='a'&&c<='z'
disp(upper(c)) %小寫字母變為大寫字母
elseif c>='0'&&c<='9'
disp(str2double(c)^2) %輸出對應數的平方
else
disp(c)
end
x=input('x=')
switch fix(x)
case 2
disp(111);
case 2
disp(222);
case
disp(333);
otherwise
disp(444);
end
%輸入乙個英文本母,判斷是否以母音字母開頭
c=input('請輸入乙個單詞:');
switch c(1)
case
disp('以母音字母開頭')
otherwise
disp('以子音字母開頭')
endif findstr(c(1),'aeiouaeiou')>0
disp('以母音字母開頭')
else
disp('以子音字母開頭')
end
格式:
for 迴圈變數=表示式1:表示式2:表示式3
迴圈體語句
end說明
%利用無窮級數展開式求π的近似值
y=0;
g=-1;
n=input('n=');
for i=1:n
g=-g;
y=y+g*1/(2*i-1);
endpai=4*y
%向量求和的方法
n=input('n=');
x=1:2:(2*n-1);
y=(-1).^(2:n+1)./x;
pai=sum(y)*4
利用定積分的近似值
a=0;
b=1;
n=input('n=');
h=(b-a)/n;
x=a:h:b;
f=sqrt(1-x.*x);
s=;for k=1:n;
s1=(f(k)+f(k+1))*h/2;
s=[s,s1];
endpai=4*sum(s)
蒙特卡洛法計算
s=0;
n=input('n=')
for i=1:n
x=rand(1);
y=rand(1);
if x*x+y*y<=1
s=s+1;
endendpai=s/n*4
for 迴圈變數必須是乙個標量,也可以是乙個列向量
格式: while 條件
迴圈體語句
end
break和continue語句
迴圈的巢狀
函式檔案的基本結構: function 輸出形參表=函式名(輸入形參表)
注釋說明部分
函式體語句
有多個形參時,用括號分隔,組成形參表。
輸出形參多於乙個時,應該用方括號括起來
函式檔名 函式名
return 語句
呼叫格式
[輸出實參表]=函式名(輸入實參表)
匿名函式
函式控制代碼變數=@(匿名函式輸入引數) 匿名函式表示式
函式控制代碼變數=@函式名
f=@(x,y)x^2+y^2
f = 包含以下值的 function_handle:
@(x,y)x^2+y^2
>> f(3,4)
ans =
25
函式的巢狀呼叫
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-svjzckya-1611460693010)(e:%5c%e5%ad%a6%e4%b9%a0%5c%e5%9b%be%e7%89%87%e7%ac%94%e8%ae%b0%5c%e5%b5%8c%e5%a5%97%e8%b0%83%e7%94%a8.png)]
遞迴呼叫:乙個函式呼叫它自身
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-0tbjnugo-1611460693012)(e:%5c%e5%ad%a6%e4%b9%a0%5c%e5%9b%be%e7%89%87%e7%ac%94%e8%ae%b0%5c%e9%80%92%e5%bd%92%e8%b0%83%e7%94%a8.png)]
%函式檔案
function f=ffib(n)
if n>2
f=ffib(n-1)+ffib(n-2);
else
f=1;
end%指令碼檔案
f=;for k=1:20
f=[f,ffib(k)*ffib(k)];
endsum(f)
ffib(20)*ffib(21)
函式引數的可調性
nargin 輸入實參的個數
nargout 輸出實參的個數
function fout=test(a,b,c)
if nargin==1
fout=a;
elseif nargin==2
fout=a+b;
elseif nargin==3
fout=(a*b*c)/2;
end
區域性變數 只在特定過程或函式中可以訪問的變數
全域性變數 整個mtlab工作空間中都可用
定義格式:global 變數名
%函式檔案
function f=wad(x,y)
global alpha beta %定義兩個全域性變數
f=alpha*x+beta*y;
%命令列視窗
global alpha beta
>> alpha =1; %命令列視窗可直接改變全域性變數的值
>> beta=2;
>> s=wad(1,2)
s = 5
bc)/2;
end
2. 區域性變數 只在特定過程或函式中可以訪問的變數
3. 全域性變數 整個mtlab工作空間中都可用
定義格式:global 變數名
```matlab
%函式檔案
function f=wad(x,y)
global alpha beta %定義兩個全域性變數
f=alpha*x+beta*y;
%命令列視窗
global alpha beta
>> alpha =1; %命令列視窗可直接改變全域性變數的值
>> beta=2;
>> s=wad(1,2)
s = 5
Matlab基礎學習筆記 二 2021 1 26
三角陣矩陣轉置 矩陣旋轉 矩陣翻轉 矩陣求逆 矩陣求值 特徵值與特徵向量 稀疏矩陣 diag a diag a,k 提取矩陣a的對角線元素 提取矩陣a的第k條對角線元素 產生乙個列向量 diag v diag v,k 以向量v為主對角線元素,產生對角矩陣 一向量v為第k條對角線元素,產生對角矩陣 例...
Matlab學習筆記(二)
四灰色 五遺傳演算法 六神經網路 先等等再學這個。主程式 用遺傳演算法求解y 200 exp 0.05 x sin x 再 2 2 上的最大值 clc clear all close all global bitlength global st global ed bounds 2 2 一維變數的取...
Matlab學習筆記1 基礎
沒寫過matlab的我又開始寫計算方法大作業了qaq,這學期真是自己選課坑自己。下了乙個matlab2016a,開始看。一開始有點不太適應matlab的程式設計語法,感覺很口語化,格式也亂亂的。語句可以直接輸在控制台裡,也可以把命令寫在乙個.m檔案裡,在控制台裡執行檔案。有的像cmd裡輸入命令和寫乙...