溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MatLab學(xué)習(xí)筆記

發(fā)布時間:2020-06-19 06:30:24 來源:網(wǎng)絡(luò) 閱讀:847 作者:leroncheung 欄目:網(wǎng)絡(luò)安全

    MatLab(Matrix Laboratory),一種以矩陣計算為基礎(chǔ)的交互式程序語言,專門針對科學(xué),工程計算以及繪圖的需求。函數(shù)眾多。

常用命令

Esc恢復(fù)命令輸入的空白狀態(tài)

上下鍵:調(diào)出上一行下一行命令

exit/quit退出并關(guān)閉Matlab

figure/figure(2)

logo顯示MatLabLogo

clc清屏

help sqrt

demo

formatcompact

formatloose

cleari, j

clearall

whowhos,檢查工作空間中的變量及其階數(shù)

語句的結(jié)尾可用回車符或逗號,此時會立即顯示運算結(jié)果。如果不希望顯示結(jié)果,就以分號結(jié)尾。此時運算仍然執(zhí)行,指示不顯示。

若賦值時,只剩下右側(cè)的表達(dá)式,而沒有被賦值的變量,則Matlab會自動給出一個臨時變量ans,把運算結(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)超出了原來矩陣的大小,矩陣的行列會自動擴展

給全行賦值,可用冒號 a(5, :)=[5, 4, 3]       //[]用來表示矩陣

b =a([2, 4], [1, 3])    //a的第2,4行及第1,3列交點上的元素取出,構(gòu)成一個新矩陣b

a([2,4, 5], :)=[]         //抽去a中的第2,4,5行,利用空矩陣[]的概念,空矩陣不同于零矩陣

a(2,4)       //a矩陣的a[2][4]元素

復(fù)數(shù)用ij來表示 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)ab之間均勻地產(chǎn)生n個點值,形成1*n維向量; eye產(chǎn)生單位矩陣

大矩陣可由若干個小矩陣組成,但必須行列數(shù)正確,恰好填滿全部元素

元素顯示不精確時,可用顯示單個元素的命令來得到它的精確值,或改用長格式(format long)來顯示整個矩陣

 

[n,m]=size(z)   //獲得矩陣階數(shù),若要自己編寫矩陣AB相加減,必須先求nA,mA,nB,mB,并檢驗是否滿足nA=nBmA=mB。作相乘時,正好相反

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是將矩陣作為一個整體進(jìn)行運算的

+ -, sqrt, exp, log是對矩陣中的元素分別進(jìn)行的(按元素群運算)

矩陣結(jié)構(gòu)形式的提取與變換

 fliplr矩陣左右翻轉(zhuǎn)fliplr(A),flipud矩陣上下翻轉(zhuǎn)flipud(A)reshape階數(shù)重組, 元素總數(shù)不變reshape(A, 2, 6)

rot90矩陣整體反時針旋轉(zhuǎn)90rot90(A), diag提取或建立對角陣diag(A), tril取矩陣的左下三角部分tril(A),triu取矩陣的右上三角部分triu(A), :將元素按列取出排成一列B=A(:)'

 

元素群運算

數(shù)組賦值

1)  用兩個冒號組成等增量語句,格式:t=[初值:增量:終值],增量為1 時可以省略

2)  linspace函數(shù),格式:linspace(初值,終值,點數(shù))

 

元素群運算也就是矩陣中所有元素按單個元素進(jìn)行運算。為了與矩陣作為整體的運算符號相區(qū)別,要在運算符*,/,\,^前加一點符號‘.’,以表示在作元素群運算。參與運算的兩個矩陣必須是同階的。非方陣不能按整體作矩陣乘冪運算的。

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é)及邏輯運算符(~=不等于)

2 邏輯字符檢查(all, any, find, isnan, isreal, isstr)

3 位運算

4 集合運算

 

流程控制語句

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一個窗口內(nèi)繪制多副圖

axis定義x,y軸最大最小值         hold保留目前曲線 grid畫網(wǎng)格線 xlabel/ylabelx/y軸加上說明

title為圖形加上標(biāo)題     text在圖上加文字說明 gtext用鼠標(biāo)拖動來確定標(biāo)注文字的位置

1直角坐標(biāo)中的兩維曲線

1)  plot(y)輸入一個數(shù)組的情況

2)  plot(x,y)輸入兩個數(shù)組的情況

如果數(shù)組xy具有相同長度,命令plot(x,y)將繪出以x元素為橫坐標(biāo),y元素為縱坐標(biāo)的曲線。

2線形,點型,顏色

Y***m品紅crgb藍(lán)wk

.,o,x,+,-,*,: 虛線,-.點劃,- -長劃

Eg: plot(x1, y1, ‘:y’), plot(x2,y2,’+r’)

3多條曲線的繪制

1) plot(t, [y1, y2, …])         要求所有輸出量有同樣的長度和同樣的自變量向量,不便于用戶自行設(shè)定線型和顏色

2) hold命令     坐標(biāo)選擇要得當(dāng),注意及時解除保持狀態(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個子圖,在第p個子圖處繪制圖形

 

其他二維繪圖命令

虛數(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時,屏幕上會將該文件中以%起頭的最前面幾行的內(nèi)容顯示出來。

2)  程序主體。注意避免中文的字符,否則會引起死機

3)  文件名不要用漢字。避免出現(xiàn)漢字路徑名。

人機交互命令

估值并執(zhí)行,流程控制語句,程序,函數(shù)和變量,變元管理,信息顯示,人機交互命令

pause(n)程序執(zhí)行到此處,暫停n秒,再繼續(xù)執(zhí)行。如果沒有括號參數(shù),則等待用戶輸入任意鍵后才繼續(xù)執(zhí)行。

keyboard程序執(zhí)行到此處暫停,在屏幕上顯示字符K,并把程序的輸入和執(zhí)行權(quán)交給用戶。如果需要系統(tǒng)恢復(fù)運行原來的程序,只需輸入字符串return。在M文件中設(shè)置該命令,有利于進(jìn)行程序調(diào)試,以及臨時修改變量內(nèi)容。

Ctrl+C強行停止程序運行的命令

 

函數(shù)文件

function起頭,后跟的函數(shù)名必須與文件名相同

有輸入輸出變元(變量),可進(jìn)行變量傳遞

除非用global聲明,程序中的變量均為局部變量,不保存在工作空間中

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI