




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、天津理工大學(xué)中環(huán)信息學(xué)院,電氣工程仿真與輔助設(shè)計,第2章 MATLAB語言基礎(chǔ),主要內(nèi)容: 1、數(shù)據(jù)結(jié)構(gòu)與語句結(jié)構(gòu) 2、基本控制流程結(jié)構(gòu) 3、M-函數(shù)設(shè)計 4、圖形可視化 5、數(shù)據(jù)處理,2.1 數(shù)據(jù)結(jié)構(gòu)與語句結(jié)構(gòu),第2章,1、MATLAB基本操作,MATLAB工作界面: 標題欄、 菜單欄、 工具欄、 命令窗口、 工作空間、 歷史命令窗口 等,2、編程規(guī)范, 變量命名規(guī)則 避免使用無意義的字母組合 Temperature Degree_C/ Degree_F 函數(shù)命名規(guī)則 模塊名_功能名 Key_GetKey() 書寫規(guī)范,3、變量, 變量命名規(guī)則: 必須以字母開頭; 可以由字母、數(shù)字和下劃線混
2、合組成; 變量長度應(yīng)不大于31個; 字母區(qū)分大小寫。,如: 1、Degree、degree 2、12Myvar、_Myvar 正確的變量名如a、a1、a_1. 在命名的過程中,避免使用無意義的字母組合。, 特殊變量盡量避免重新賦值,返回, MATLAB快捷鍵:, 回調(diào)上一行命令 回調(diào)下一行命令 左移一個字符 右移一個字符 Delet Backspace 刪除字符 Ctrl+C 中斷MATLAB任務(wù), 通用命令:,help 幫助 clear 清除變量 clc 清屏,what 查看當前路徑下的m文件 who, whos 查看workspace變量 load, save 儲存、讀取mat文件, 數(shù)據(jù)
3、結(jié)構(gòu):,在MATLAB里共有六種數(shù)據(jù)類型,每一種類型可以是一維、二維和多維的。 雙精度型數(shù)值量常用double(), 取值范圍(-1.7103081.710308) 字符串型單引號擴起來,hello 多維數(shù)組是矩陣的拓展,用 括起來。 單元數(shù)組是矩陣的直接擴展,可存儲 任意類型的信息,Ai,j 類與對象如傳遞函數(shù)類,tf(G) 符號變量syms a可用于公式推導(dǎo), 數(shù)據(jù)的存儲與讀取 數(shù)據(jù)存儲:save fname A1 A2.Am 其中fname為文件名,自動生成fname.mat的數(shù)據(jù)文件類型。 數(shù)據(jù)讀?。簂oad fname A1 A2.Am 注意:需要存儲的數(shù)據(jù)A1 A2.Am之間用空格
4、隔開, 不能采用逗號隔開 舉例說明,4、基本語句結(jié)構(gòu):,(1)直接賦值語句,變量名列表=賦值表達式 等號左邊的變量名列表為MATLAB語句的返回值,若一次返回多個結(jié)果,則變量列表用 括起來,各變量間用逗號分隔; 等號右邊為表達式,可以是矩陣運算或函數(shù)調(diào)用,可以由分號(;)、逗號(,)或回車結(jié)束。 注意:語句結(jié)尾有無分號的顯示結(jié)果區(qū)別是什么。,如: var1=2,5,6,7,8,3 運行結(jié)果:var1= 2 5 6 7 8 3 如果不想顯示結(jié)果,在賦值語句的結(jié)尾加一個分號。 var1=2,5,6,7,8,3;,如果省略了賦值變量和等號,則表達式運算的結(jié)果將賦值保留變量ans。ans將存放最后一次
5、無賦值變量語句的結(jié)果。 如: 2,5,6,7,8,3 運行結(jié)果:ans= 2 5 6 7 8 3, 基本語句結(jié)構(gòu):,(2)函數(shù)調(diào)用語句,返回變量列表=函數(shù)名(輸入變量列表) 一般函數(shù)名應(yīng)對應(yīng)在MATLAB路徑下的一個文件,如,函數(shù)名my_fun應(yīng)該對應(yīng)在my_fun.m文件; 返回變量列表和輸入變量列表可以有若干變量,變量間用“,”分隔,此外,返回變量還允許用“空格”分隔 如:A_inv=inv(A) (其中inv求解逆矩陣) u,s,v=svd(X) (其中svd對矩陣X進行奇異值分解,s為對角矩陣,X=u*s*v),5、矩陣的MATLAB表示:, 矩陣的賦值 矩陣用“ ”擴起來 “分號”表
6、示換行 “,”或“空格”表示同一行元素分隔 如:直接輸入 A=1 2, 3; 4 5 6;7, 8 9 冒號操作符 a=0:1:10 a=linspace(0,1,10) a=logspace(1,2,10), 下標操作:,矩陣下標(按列優(yōu)先排列) 用兩個下標來表示。第i行j列的元素用A(i,j)來表示 用一個下標來表示。對于矩陣按列操作,可用單下標引用A(i) 。 在下標的表達式中使用冒號表示矩陣的一部分。 下標引用從序號1開始。,矩陣行列刪除 B=1 2 3;4 5 6; 7 8 9; B(2,: )= B= 1 2 3 7 8 9,選擇特定行列 B=1 2 3;4 5 6; 7 8 9;
7、 B(2,: ) B= 4 5 6, 下標操作:,例: A= 1 4 7 2 5 8 3 6 9 A(4)+A(8), 矩陣的尺寸:,為了判斷矩陣的尺寸,Matlab提供了以下函數(shù): m,n=size(A) %返回矩陣的行數(shù)m和列數(shù)n M=size(A) %在矩陣M中返回矩陣的行數(shù)、 列數(shù) len=length(A) %返回矩陣A行數(shù)和列數(shù)中的 最大值, 矩陣表示練習(xí),例子:x=0.3,0.4,0.6,1.5,0.8,1.2 x(3) x(1 2 5) b=16 2 3 13;5 11 10 8;9 7 6 12;4 14 15 1 b(3,4) b(2 4,1 3) b(2,5,8) b(2
8、;5;8) b(b10) size(b) nrow,ncol=size(b), 特殊矩陣:,單位矩陣 eye(n)%生成n維單位陣 eye(m,n) %生成mn的單位陣 eye(m,n) %生成mn的單位陣 eye(size(A)%生成與A矩陣同樣大 小的單位矩陣, 特殊矩陣:,全1矩陣 ones(n) ones(m,n) ones(m,n) ones(size(A) 全零矩陣 zeros(n) zeros(m,n) zeros(m,n) zeros(size(A) 隨機矩陣 rand(n) rand(m,n) rand(m,n) rand(size(A) 生成的隨機矩陣的各個元素值在0和1之
9、間。 對角陣 diag(n) 對角陣 魔術(shù)矩陣 magic(n) 魔術(shù)矩陣的所有行元素和、列元素和、對角線元素和均相等, 矩陣的代數(shù)運算:,轉(zhuǎn)置 B=A(hermit轉(zhuǎn)置,有復(fù)數(shù)的變共軛復(fù)數(shù)) 加減乘 A+B A-B A*B 左除 AB 即AX=B的解X=A-1B 右除 A/B 即XB=A的解X=AB-1(B-1A-1) 翻轉(zhuǎn) fliplr(左右翻轉(zhuǎn))flipud(上下翻轉(zhuǎn)) rot90(逆時針旋轉(zhuǎn)90) 乘方 AB(A為方陣) 點運算 A.*B A./B A.B A.B A. A.*B表示矩陣A、B的相應(yīng)元素之間直接進行乘法。 注意:點乘運算A、B矩陣的維數(shù)相同,6、矩陣的基本運算:, 矩陣
10、的代數(shù)運算練習(xí),例: a=1 2-1j 3 4;5 6+2j 7 8, b=4 3 1;5 3 2;8 6 3;2 1 6, c=1 2 3 4;5 6 7 8 求 a , a. , a*b , a.*c , a/c , a./c , fliplr(a) , flipud(b) , rot90(c), 矩陣的邏輯運算:,邏輯運算 : ( ) 4、點運算,a= 1 2 3 4,b= 1 2 3 4,a*b= 7 10 15 22,a.*b= 1 4 9 16,t=1 2 3 4; s=2.t s=2 4 8 16,2.2 基本控制流程結(jié)構(gòu),第2章,1、順序結(jié)構(gòu),最簡單的語句結(jié)構(gòu),逐條執(zhí)行語句即可
11、。 如: a=1 2 3;4 5 6; b=2 5 8;7 2 0; s=a.*b,2、循環(huán)結(jié)構(gòu),MATLAB中的循環(huán)語句包括for循環(huán)和while循環(huán)兩種類型。, for語句:,基本格式為: for 循環(huán)變量=起始值:步長:終止值 循環(huán)體 end 步長的缺省值是1。步長可以在正實數(shù)或負實數(shù)范圍內(nèi)任意指定, 對于正數(shù),循環(huán)變量的值大于終止值時,循環(huán)結(jié)束; 對于負數(shù),循環(huán)變量的值小于終止值時,循環(huán)結(jié)束。 (循環(huán)次數(shù)確定), while語句:,基本格式為: while 表達式 循環(huán)體 end 其表達式是個邏輯表達式,若為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達式是否為真,若為假則跳出循環(huán)體,向下繼
12、續(xù)執(zhí)行,否則繼續(xù)執(zhí)行循環(huán)體。 break:從循環(huán)體中跳出,并使循環(huán)結(jié)束 (循環(huán)次數(shù)不確定),例:,解題過程: 1.用for語句表示: s=0;for i=1:100,s=s+i;end,s 或用while語句表示: s=0;i=1;while(i=100) s=s+i;i=i+1;end,s 2. i=0;s=0;while(s=1000) s=s+i;i=i+1;end,i-1,s,實際編程中,如果能對整個矩陣進行運算,盡量不要采用循環(huán),這樣可提高代碼的效率,s=i=1100000(1/2i+1/3i),分別用矩陣和循環(huán)的方式求解 解題過程: tic,s=0;for i=1:100000,s
13、=s+1/2i+1/3i;end;toc 或者 tic,i=1:100000;s=sum(1/2).i+(1/3).i); toc,3、選擇結(jié)構(gòu) 轉(zhuǎn)移結(jié)構(gòu),if-elseif格式 如果邏輯表達式的值為真,則執(zhí)行語句1,若邏輯表達式的值為假,則判斷邏輯表達式2的值,若為真,則執(zhí)行語句2,否則向下執(zhí)行,若所有表達式均為假,執(zhí)行語句el 。,if 邏輯表達式1 執(zhí)行語句1 elseif 邏輯表達式2 執(zhí)行語句2 elseif 邏輯表達式n 執(zhí)行語句n else 執(zhí)行語句el end,循環(huán)語句例2另解: s=0; for m=1:1000, s=s+m; if s1000, break; end, e
14、nd, m,3、選擇結(jié)構(gòu) 開關(guān)結(jié)構(gòu),表達式的值和哪種情況的值相同,就執(zhí)行哪種情況中的語句,如果都不同,則執(zhí)行otherwise中的語句。 注意:無需像C語言那樣在下一個case之前加break語句,switch 表達式(標量或字符串) case 值1 語句1 case 值2 語句2 case 值n 語句n otherwise 語句ow end,2.3 M-函數(shù)設(shè)計,第2章,1、MATLAB程序設(shè)計基本原則, 后面的內(nèi)容是程序的注解,要善于運用注解使程序更具可讀性。 養(yǎng)成在主程序開頭用clear指令清除變量的習(xí)慣,以消除工作空間中其他變量對程序運行的影響。但注意在子程序中不要用clear。 參數(shù)
15、值要集中放在程序的開始部分,以便維護。要充分利用MATLAB工具箱提供的指令來執(zhí)行所要進行的運算,在語句運行之后輸入分號使其及中間結(jié)果不在屏幕上顯示,以提高執(zhí)行速度。, 程序盡量模塊化,也就是采用主程序調(diào)用子程序的方法,將所有子程序合并在一起來執(zhí)行全部的操作。 充分利用Debugger來進行程序的調(diào)試(設(shè)置斷點、單步執(zhí)行、連續(xù)執(zhí)行) 設(shè)置好MATLAB的工作路徑,以便程序運行。,2、MATLAB程序的基本組成結(jié)構(gòu), 說明 清除命令:清除workspace中的變量和圖形(clear,close) 定義變量:包括全局變量的聲明及參數(shù)值的設(shè)定 逐行執(zhí)行命令:指MATLAB提供的運算指令或工具箱提供的
16、專用命令 . . . 控制循環(huán):包含for,if.else,switch,while等語句 逐行執(zhí)行命令 . . . 繪圖命令:將運算結(jié)果繪制出來,3、MATLAB程序類型,對于簡單的計算可直接在指令窗口中輸入指令,但指令數(shù)多的時候,則用源程序文件即M文件設(shè)計。 M文件:用Matlab語言編寫的可以在Matlab環(huán)境中運行的程序稱為M文件。 M文件以.m為擴展名, M文件分為兩種:M-腳本文件(命令文件) 和M函數(shù)文件, M-腳本文件:根據(jù)用戶要求,使用Matlab語 言組成一定功能的Matlab指令集合. 使用方法:在MATLAB的提示符下鍵入該文件名。 M-腳本文件運行后,所產(chǎn)生的變量駐留
17、在Matlab工作空間中,只要不用clear命令清除,(或關(guān)閉Matlab窗口)這些變量會一直保留在Matlab工作空間中. 適用范圍:適用于小規(guī)模運算,例:下面語句如果以.m為擴展名存盤,就構(gòu)成 M 腳本文件 M 腳本文件: num=2*1,2; den=conv(conv(1,0,1,3),1,2,2); G1=tf(num,den); G=ss(G1); a,b,c,d=ssdata(G); Ab=a-b*c Bb=b Cb=c Db=0 step(Ab,Bb,Cb,Db), M函數(shù)文件: M函數(shù)文件就是建立一個函數(shù),它可以同Matlab的基本函數(shù)一樣加以使用。 基本結(jié)構(gòu): functi
18、on 返回變量列表=函數(shù)名(輸入變量列表) 注釋說明語句段,由%引導(dǎo) 輸入、返回變量格式的檢測 函數(shù)體語句,注意: 函數(shù)文件的第一行必須包括“function”這個關(guān)鍵字。 函數(shù)文件的文件名必須和函數(shù)定義的函數(shù)名稱相同, M函數(shù)文件中所定義的變量是內(nèi)部變量, M函數(shù)執(zhí)行完后這些變量隨之消失。 輸入?yún)?shù)的定義用小括號(),如果有多個輸入?yún)?shù)則用逗號分隔;輸出參數(shù)的定義用中括號,如果有多個輸出參數(shù)則用逗號或空格分隔。,例:function y=mean(x) %This is a M function file m=length(x); y=sum(x)/m ; 將上面程序保存:mean1.M 構(gòu)
19、造了一個M函數(shù)文件,該函數(shù)可實現(xiàn)對平均數(shù)的求取。隨時可調(diào)用。 如:r=1:99; mean(r) 運行得到: ans= 50,(1)函數(shù)定義行(關(guān)鍵字function) functionout1,out2,.=filename(in1,in2,.) 輸入和輸出(返回)的參數(shù)個數(shù)分別由nargin和nargout兩個MATLAB保留的變量來給出。 (2)第一行幫助行,即H1行,以(%)開頭,作為lookfor指令搜索的行 (3)函數(shù)體說明及有關(guān)注解:以(%)開頭,用以說明函數(shù)的作用及有關(guān)內(nèi)容;如果不希望顯示某段信息,可在它的前面加空行 (4)函數(shù)體語句:函數(shù)體內(nèi)使用的除返回和輸入變量這些在fun
20、ction語句中直接引用的變量以外的所有變量都是局部變量,即在該函數(shù)返回之后,這些變量會自動在MATLAB的工作空間中清除掉。如果希望這些中間變量成為在整個程序中都起作用的變量,則可以將它們設(shè)置為全局變量。,2.4 圖形可視化,第2章, 圖形繪制 () 圖形標注 圖形控制,plot(y) plot(x,y) plot(x1,y1,option1,x2,y2,option2,.),plot控制:,功能:在調(diào)用函數(shù)plot時,可以指定線型,顏 色,和數(shù)據(jù)點的圖標。 格式:plot(x,y, color_linestyle_marker) 說明:參數(shù)color_linestyle_marker 為一
21、個字 符串,由顏色、線型、數(shù)據(jù)點的圖標組成。,線性和顏色字符定義表:, 圖形繪制 圖形標注() 圖形控制,text(x,y,字符串) 在圖形的指定坐標位置(x,y)處,標示單引號括起來的字符串。 gtext(字符串) 利用鼠標在圖形的某一位置標示字符串。 title(字符串) 在所畫圖形的最上端顯示說明該圖形標題的字符串。 xlabel(字符串),ylabel(字符串) 設(shè)置x,y坐標軸的名稱, 圖形繪制 圖形標注 圖形控制(),figure(1);figure(2);figure(n)打開不同的圖形窗口,以便繪制不同的圖形。 grid on; grid off 顯示/不顯示格柵線 hold
22、on; hold off 保存/不保存當前的坐標系 axis(xmin xmax ymin ymax)設(shè)置坐標軸 subplot(m,n,k) 分割圖形顯示窗口,m:上下分割個數(shù),n:左右分割個數(shù),k:子圖編號 semilogx;semilogy 繪制以x(或y)軸為對數(shù)坐標(以10為底),y軸(或x軸)為線性坐標的半對數(shù)坐標圖形。,繪圖一般步驟, 準備繪圖需要的數(shù)據(jù); 指定繪圖的窗口或者區(qū)域; 調(diào)用基本繪圖命令; 選擇線型、顏色、數(shù)據(jù)點形狀; 坐標軸控制,包括顯示范圍、刻度線、比例、網(wǎng)格線; 標注控制,包括坐標軸名稱、標題、相應(yīng)文本等。,MATLAB提供了豐富的繪圖功能 help graph
23、2d可得到所有畫二維圖形的命令 help graph3d可得到所有畫三維圖形的命令,例:,P26 例2-7 例2-8 例2-9,2.5 數(shù)據(jù)處理,第2章,1、矩陣分解 三角分解 特征值分解,L,U=lu(A) %求矩陣A的LU分解 Xinv(A) %求矩陣A的逆矩陣 d=det(A) %求矩陣A的行列式,deig(A); V,Deig(A); V,Deig(A,nobalance),2、多項式的創(chuàng)建,直接輸入法例如: A=1,2;3,4 poly(A) %創(chuàng)建方陣A的特征多項式 A=1 2;3 4;poly(A) 得到ans=1 -5 -2;即x2-5x-2 poly(a) %如果a為向量bn
24、 bn-1b1 b0,則創(chuàng)建(x-b0 )( x-b1) (x-bn-1 )(x- bn )生成的多項式的系數(shù)向量 b=1 2 3;poly(b) 得到ans=1 -6 11 -6;即x3-6x2+11x-6,多項式常用函數(shù),roots ( ) %求多項式的根 p=poly(A) %求矩陣的特征多項式 polyval( p,x) %求當多項式p的參數(shù)為某個特定值x時的多項式的值,p為系數(shù)向量, polyvalm(p,A) %和polyval作用相同,輸入?yún)?shù)值也可為方陣A 例:w=1 -3 2;roots(w)得到2 1 即x2-3x+2=0,得到x=1,x=2 求x3-6x2+11x+6,當
25、x=1時的解 a=1 -6 11 6;polyval(a,1),卷積和解卷積,c=conv(A,B) %卷積函數(shù) ,多項式乘法函數(shù) Q,R=deconv (A,B) %解卷積函數(shù),多項式除法函數(shù),導(dǎo)數(shù),Pdpolyder(P) %求多項式P的導(dǎo)數(shù) Pmpolyder(P1,P2) %求多項式P1和多項式P2乘積的導(dǎo)數(shù) Q,D=polyder(P1,P2) %求多項式P1除以多項式P2商的導(dǎo)數(shù),多項式擬合,從最小二乘法的意義上,polyfit函數(shù)將擬合出所給數(shù)據(jù)的多項式系數(shù),其調(diào)用格式為: p=polyfit(x,y,n) 其中,x和y為已知數(shù)據(jù)的橫坐標和縱坐標向量,n為多項式的次數(shù)。,多項式插
26、值,多項式插值是指根據(jù)給定的有限個樣本點,產(chǎn)生另外的估計點以達到數(shù)據(jù)更為平滑的效果。該技巧在信號處理與圖像處理上應(yīng)用廣泛。 所用指令有一維的interp1、二維的interp2、三維的interp3。這些指令分別有不同的方法(method),設(shè)計者可以根據(jù)需要選擇適當?shù)姆椒?,以滿足系統(tǒng)屬性的要求。Help polyfun可以得到更詳細的內(nèi)容。 y=interp1(xs,ys,x,method) 在有限樣本點向量xs與ys中,插值產(chǎn)生向量x和y,所用方法定義在method中,有4種選擇: nearest:執(zhí)行速度最快,輸出結(jié)果為直角轉(zhuǎn)折 linear:默認值,在樣本點上斜率變化很大 spline:最花時間,但輸出結(jié)果也最平滑 cubic:最占內(nèi)存,輸出結(jié)果與spline差不多,數(shù)據(jù)處理練習(xí)題:,如:1、多項式x4-12x3+0 x2+25x+116求多項式當x=5的值,及多項式=0時的根。 P=1 -12 0 25 116;poly2sym(P) polyval (P,5) %求此多項式當x=5時的值 r=roots(P)%求此多項式=0時的根 2、a=1 2 3;b=1 2求a與b的卷積c;求多項式c除以多項式a;求多項式a的導(dǎo)數(shù);求多項式a當x為2時的解。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 議論文論點的尋找或提煉
- 2025年黨章黨史國史國情知識競賽題庫及答案(共180題)
- 寫母親的作文
- 公司犯錯誤的檢討書
- 演講稿開場白說
- 飛機維修委托協(xié)議
- 體外膈肌起搏治療結(jié)合呼吸訓(xùn)練法對慢阻肺患者呼吸功能及運動耐力的影響
- 《數(shù)據(jù)庫應(yīng)用技術(shù)》課件-第2章 MySQL的安裝與配置
- 陵園墓碑裝修合同模板
- 《Linux操作系統(tǒng)》課件-2.Linux基本命令操作
- MOOC 人工智能基礎(chǔ)-國防科技大學(xué) 中國大學(xué)慕課答案
- 裝配式建筑預(yù)制構(gòu)件安裝-水平構(gòu)件安裝技術(shù)
- 部編版語文五年級下冊第四單元大單元整體教學(xué)設(shè)計
- 《廂式貨運車系列型譜》
- 第二課-智能多面手-課件-六年級下冊信息科技河南大學(xué)版
- 浙江弘博新材料科技有限公司年產(chǎn) 10 萬噸增塑劑和配套 4 萬噸苯酐擴建項目 環(huán)境影響報告書
- 境外安全管理培訓(xùn)(海外)課件
- 家鄉(xiāng)物產(chǎn)說課稿公開課
- 紙箱出廠檢驗報告
- 廠房分布式光伏系統(tǒng)施工進度計劃橫道圖
- 《大學(xué)英語四六級》課件
評論
0/150
提交評論