MatLab(Matrix Laboratory),一種以矩陣計(jì)算為基礎(chǔ)的交互式程序語言,專門針對科學(xué),工程計(jì)算以及繪圖的需求。函數(shù)眾多。
常用命令
Esc恢復(fù)命令輸入的空白狀態(tài)
上下鍵:調(diào)出上一行下一行命令
exit/quit退出并關(guān)閉Matlab
figure/figure(2)
logo顯示MatLab的Logo
clc清屏
help sqrt
demo
formatcompact
formatloose
cleari, j
clearall
who或whos,檢查工作空間中的變量及其階數(shù)
語句的結(jié)尾可用回車符或逗號,此時(shí)會(huì)立即顯示運(yùn)算結(jié)果。如果不希望顯示結(jié)果,就以分號結(jié)尾。此時(shí)運(yùn)算仍然執(zhí)行,指示不顯示。
若賦值時(shí),只剩下右側(cè)的表達(dá)式,而沒有被賦值的變量,則Matlab會(huì)自動(dòng)給出一個(gè)臨時(shí)變量ans,把運(yùn)算結(jié)果暫存在ans中。
基本語法
Matlab中的變量或常量都代表矩陣,標(biāo)量應(yīng)看作1*1階矩陣。
a=[1 23; 4 5 6; 7 8 9],同一行元素之間以逗號或空格分開,不同的行以分號分開。
變量的元素用圓括號()中的數(shù)字(下標(biāo))來注明,二維的下標(biāo)以逗號分開。
如果賦值元素的下標(biāo)超出了原來矩陣的大小,矩陣的行列會(huì)自動(dòng)擴(kuò)展
給全行賦值,可用冒號 a(5, :)=[5, 4, 3] //[]用來表示矩陣
b =a([2, 4], [1, 3]) //把a(bǔ)的第2,4行及第1,3列交點(diǎn)上的元素取出,構(gòu)成一個(gè)新矩陣b
a([2,4, 5], :)=[] //抽去a中的第2,4,5行,利用空矩陣[]的概念,空矩陣不同于零矩陣
a(2,4) //a矩陣的a[2][4]元素
復(fù)數(shù)用i或j來表示 c=3+5i
z =[1, 3;5, 7]+[2, 4;6, 8]*i // ‘*’不可省略
w=z' //共軛轉(zhuǎn)置
w=conj(z) //共軛
w=conj(z)' //轉(zhuǎn)置
基本矩陣
zeros(m,n), ones(m, n), rand(m, n), linspace(a, b, n), eye(n) //linspace(a, b, n)在a與b之間均勻地產(chǎn)生n個(gè)點(diǎn)值,形成1*n維向量; eye產(chǎn)生單位矩陣
大矩陣可由若干個(gè)小矩陣組成,但必須行列數(shù)正確,恰好填滿全部元素
元素顯示不精確時(shí),可用顯示單個(gè)元素的命令來得到它的精確值,或改用長格式(format long)來顯示整個(gè)矩陣
[n,m]=size(z) //獲得矩陣階數(shù),若要自己編寫矩陣A和B相加減,必須先求nA,mA,nB,mB,并檢驗(yàn)是否滿足nA=nB,mA=mB。作相乘時(shí),正好相反
x=[1,2, 3]; y=x-1
l=length(X) //一維數(shù)組,length不分行和列
inv(z) //求逆矩陣,z必須為n階方陣
x=inv(D)*B=D\B //把D的逆矩陣左乘B,記作D\, 稱之為左除。
x=B*inv(D)=B/D //把D的逆矩陣右乘B,記作/D, 稱之為右除。
*, \, /, ^, expm, logm, sqrtm是將矩陣作為一個(gè)整體進(jìn)行運(yùn)算的
+, -, sqrt, exp, log是對矩陣中的元素分別進(jìn)行的(按元素群運(yùn)算)
矩陣結(jié)構(gòu)形式的提取與變換
fliplr矩陣左右翻轉(zhuǎn)fliplr(A),flipud矩陣上下翻轉(zhuǎn)flipud(A),reshape階數(shù)重組, 元素總數(shù)不變r(jià)eshape(A, 2, 6)
rot90矩陣整體反時(shí)針旋轉(zhuǎn)90度rot90(A), diag提取或建立對角陣diag(A), tril取矩陣的左下三角部分tril(A),triu取矩陣的右上三角部分triu(A), :將元素按列取出排成一列B=A(:)'
元素群運(yùn)算
數(shù)組賦值
1) 用兩個(gè)冒號組成等增量語句,格式:t=[初值:增量:終值],增量為1 時(shí)可以省略
2) 用linspace函數(shù),格式:linspace(初值,終值,點(diǎn)數(shù))
元素群運(yùn)算也就是矩陣中所有元素按單個(gè)元素進(jìn)行運(yùn)算。為了與矩陣作為整體的運(yùn)算符號相區(qū)別,要在運(yùn)算符*,/,\,^前加一點(diǎn)符號‘.’,以表示在作元素群運(yùn)算。參與運(yùn)算的兩個(gè)矩陣必須是同階的。非方陣不能按整體作矩陣乘冪運(yùn)算的。
Eg :
x=[0:0.1:pi/4]’;
disp(‘ x sin(x) cos(x) tan(x) ’)
disp([x,sin(x),cos(x),tan(x)])
邏輯判斷
1 數(shù)學(xué)及邏輯運(yùn)算符(~=不等于)
2 邏輯字符檢查(all, any, find, isnan, isreal, isstr)
3 位運(yùn)算
4 集合運(yùn)算
流程控制語句
1 if語句
1) if(expression) section, end
2) if(expression1) section1, elsesection2, end
3) if(expression1) section1, elseifexpression2 section2, else section3, end
2while語句
while(expression)section, end
3 for 語句
for k=初值:增量:終值 語句組A, end
4 switch語句
switch表達(dá)式(標(biāo)量或字符串)
case 值1
語句組A
case 值2
語句組B
… …
Otherwise
語句組N
end
基本繪圖方法
Graph3d,Graph4d,Graphics,specgraph函數(shù)庫
基本作圖函數(shù)說明:
Plot繪制連續(xù)波形 stem繪制離散波形 subplot一個(gè)窗口內(nèi)繪制多副圖
axis定義x,y軸大最小值 hold保留目前曲線 grid畫網(wǎng)格線 xlabel/ylabel為x/y軸加上說明
title為圖形加上標(biāo)題 text在圖上加文字說明 gtext用鼠標(biāo)拖動(dòng)來確定標(biāo)注文字的位置
1直角坐標(biāo)中的兩維曲線
1) plot(y)輸入一個(gè)數(shù)組的情況
2) plot(x,y)輸入兩個(gè)數(shù)組的情況
如果數(shù)組x和y具有相同長度,命令plot(x,y)將繪出以x元素為橫坐標(biāo),y元素為縱坐標(biāo)的曲線。
2線形,點(diǎn)型,顏色
Y***m品紅c青r紅g綠b藍(lán)w白k黑
.,o,x,+,-,*,: 虛線,-.點(diǎn)劃,- -長劃
Eg: plot(x1, y1, ‘:y’), plot(x2,y2,’+r’)
3多條曲線的繪制
1) plot(t, [y1, y2, …]) 要求所有輸出量有同樣的長度和同樣的自變量向量,不便于用戶自行設(shè)定線型和顏色
2) hold命令 坐標(biāo)選擇要得當(dāng),注意及時(shí)解除保持狀態(tài)hold off
3) 在plot后使用多輸入變量
plot(x1, y1,’+g’, x2, y2,’:r’ …)
4) plotyy命令
plotyy(t,y,t2,y2)
屏幕控制
1 圖形窗的控制
figure創(chuàng)建圖形窗 gcf獲取當(dāng)前圖形窗的句柄 clf清除當(dāng)前圖形窗 shg顯示圖形
refresh刷新圖形 close關(guān)閉圖形窗 close all關(guān)閉所有圖形窗
2 軸系的控制
axes在任意位置創(chuàng)建坐標(biāo)系 gca獲取當(dāng)前坐標(biāo)系的句柄 cla清除當(dāng)前坐標(biāo)系 ishold保持當(dāng)前圖形狀態(tài)為真
3 圖形對象
line創(chuàng)建直線 surface創(chuàng)建曲面 patch創(chuàng)建圖形填充塊 light創(chuàng)建照明 p_w_picpath創(chuàng)建圖像
4 圖形句柄操作
5工具
6 其他
subplot(n,m,p):將圖形窗口分為n*m個(gè)子圖,在第p個(gè)子圖處繪制圖形
其他二維繪圖命令
虛數(shù)的繪圖
坐標(biāo)比例和尺寸的設(shè)定---axis命令
圖形窗口中的直接編輯
M文件及程序調(diào)試
M文件分兩種:一種是主程序文件(script file),由用戶為解決特定的問題而編制的;另一種是子程序,也稱為函數(shù)文件(function file),它必須由其他文件調(diào)用
主程序文件
1) 用clear,close all等語句開始,清除掉工作空間中原有的變量和圖形,以避免其它已執(zhí)行程序殘留數(shù)據(jù)對本程序的影響。前幾行通常是注釋,說明此程序的用途。注釋必須以%開始。在MatLab中輸入help filename時(shí),屏幕上會(huì)將該文件中以%起頭的最前面幾行的內(nèi)容顯示出來。
2) 程序主體。注意避免中文的字符,否則會(huì)引起死機(jī)
3) 文件名不要用漢字。避免出現(xiàn)漢字路徑名。
人機(jī)交互命令
估值并執(zhí)行,流程控制語句,程序,函數(shù)和變量,變元管理,信息顯示,人機(jī)交互命令
pause(n)程序執(zhí)行到此處,暫停n秒,再繼續(xù)執(zhí)行。如果沒有括號參數(shù),則等待用戶輸入任意鍵后才繼續(xù)執(zhí)行。
keyboard程序執(zhí)行到此處暫停,在屏幕上顯示字符K,并把程序的輸入和執(zhí)行權(quán)交給用戶。如果需要系統(tǒng)恢復(fù)運(yùn)行原來的程序,只需輸入字符串return。在M文件中設(shè)置該命令,有利于進(jìn)行程序調(diào)試,以及臨時(shí)修改變量內(nèi)容。
Ctrl+C強(qiáng)行停止程序運(yùn)行的命令
函數(shù)文件
由function起頭,后跟的函數(shù)名必須與文件名相同
有輸入輸出變元(變量),可進(jìn)行變量傳遞
除非用global聲明,程序中的變量均為局部變量,不保存在工作空間中
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。