計算機(jī)仿真技術(shù)與CAD第1章仿真軟件-MATLAB.ppt
《計算機(jī)仿真技術(shù)與CAD第1章仿真軟件-MATLAB.ppt》由會員分享,可在線閱讀,更多相關(guān)《計算機(jī)仿真技術(shù)與CAD第1章仿真軟件-MATLAB.ppt(212頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、1,本章內(nèi)容 MATLAB的基本數(shù)學(xué)函數(shù)和常用命令的使用; MATLAB的M文件的建立與使用; MATLAB的基本輸入/輸出函數(shù)及其應(yīng)用; MATLAB的外部命令調(diào)用方法; MATLAB的條件轉(zhuǎn)移語句、循環(huán)語句等常用控制語句的使用; MATLAB的基本繪圖、字符添加、圖形控制和圖形修飾命令; MATLAB的基本數(shù)值運算方法; MATLAB的基本符號運算方法; MATLAB的文件I/O ; MATLAB圖形用戶界面(GUI)的簡單設(shè)計; MATLAB編譯器的基本應(yīng)用方法。,第1章 仿真軟件MATLAB,2,1.1 MATLAB的功能特點 1.1.1 MATLAB簡介,在科學(xué)研究和工程應(yīng)用中,為了
2、克服一般語言對大量的數(shù)學(xué)運算,尤其當(dāng)涉及矩陣運算時,編程難、調(diào)試麻煩等困難,美國MATLAB軟件開發(fā)公司于1967年構(gòu)思并開發(fā)了MATLAB(MATRIX ABoratory, 即矩陣實驗室),經(jīng)過不斷更新和擴(kuò)充,該公司于1992年推出了具有劃時代意義的MATLAB4.0版本,并于1993年推出了其微機(jī)版。 到2011年為止先后推出了MATLAB4.x、MATLAB 5.x、MATLAB 6.x和MATLAB 7.x版,使之應(yīng)用范圍越來越廣。從MATLAB 7.x版開始,MathWorks公司每年發(fā)布兩個版本的MATLAB。,3,用MATLAB編程運算與人進(jìn)行科學(xué)計算的思路和表達(dá)方式完全一致
3、,所以使用MATLAB進(jìn)行數(shù)學(xué)運算就象在草稿紙上演算數(shù)學(xué)題一樣方便。 萬能的、科學(xué)的數(shù)學(xué)運算“演算紙” 萬能的計算器,4,MATLAB大大降低了對使用者的數(shù)學(xué)基礎(chǔ)和計算機(jī)語言知識的要求,既使用戶不懂C或FORTRAN這樣的程序設(shè)計語言,也可使用MATLAB輕易的再現(xiàn)C或FORTRAN語言幾乎全部的功能 ,設(shè)計出功能強(qiáng)大、界面優(yōu)美、穩(wěn)定可靠的高質(zhì)量程序來,而且編程效率和計算效率極高。,5,盡管MATLAB開始并不是為控制理論與系統(tǒng)的設(shè)計者們編寫的,但以它“語言”化的數(shù)值計算、強(qiáng)大的矩陣處理及繪圖功能 、靈活的可擴(kuò)充性和產(chǎn)業(yè)化的開發(fā)思路很快就為自動控制界研究人員所矚目。目前,在自動控制、圖像
4、處理、語言處理、信號分析、振動理論、優(yōu)化設(shè)計、時序分析和系統(tǒng)建模等領(lǐng)域。,6,由著名專家與學(xué)者以MATLAB為基礎(chǔ)開發(fā)的實用工具箱極大地豐富了MATLAB的內(nèi)容,較為常見的MATLAB工具箱主要有:,航空宇宙模塊集(Aerospace Blockset); 通信模塊集(Communications Blockset); 控制系統(tǒng)工具箱(Control Systems Toolbox); 數(shù)據(jù)獲得工具箱(Data Acquisition Toolbox); 模糊邏輯工具箱(Fuzzy Logic Toolbox); 濾波器設(shè)計工具箱(Filter Design Toolbox); 定點運算模塊集
5、(Fixed-Point Blockset); 遺傳算法與直接搜索工具箱(Genetic Algorithm and Direct Search Toolbox);,7,高階譜分析工具箱(High-Order Spectral Analysis Toolbox); 圖像處理工具箱(Image Processing Toolbox); 映射工具箱(Mapping Toolbox); 模型預(yù)測控制工具箱(Model Predictive Control Toolbox); 神經(jīng)網(wǎng)絡(luò)工具箱(Neural Network Toolbox); 優(yōu)化工具箱(Optimization Toolbox); 偏
6、微分方程工具箱(Partial Differential Equation Toolbox); 魯棒控制工具箱(Robust Control Toolbox); 信號處理工具箱(Signal Processing Toolbox); 統(tǒng)計學(xué)工具箱(Statistics Toolbox); 系統(tǒng)辨識工具箱(System Identification Toolbox); 樣條工具箱(Spline Toolbox); 小波分析工具箱(Wavelet Toolbox)。,8,模型輸入與仿真環(huán)境Simulink更使MATLAB為控制系統(tǒng)的仿真與CAD中的應(yīng)用打開了嶄新的局面,并使得MATLAB目前已經(jīng)成
7、為國際上最流行的控制系統(tǒng)計算機(jī)輔助設(shè)計的軟件工具。 MATLAB不僅流行于控制界,在生物醫(yī)學(xué)工程、語言處理、圖像信號處理、雷達(dá)工程、信號分析、計算機(jī)技術(shù)等各行各業(yè)中都有極廣泛的應(yīng)用。,9,嚴(yán)格地說,MATLAB并不是一種計算機(jī)語言,它僅僅是一種高級的科學(xué)分析與計算軟件。因為,用它編寫出來的程序并不能脫離MATLAB環(huán)境而執(zhí)行,但從其功能上講,MATLAB已經(jīng)完全具備了計算機(jī)語言的結(jié)構(gòu)與性能,所以我們這里將其簡稱為“MATLAB語言”。,10,目前MATLAB的最新版本為MATLAB 7.13(R2011b),它包括MATLAB 和 Simulink 的新功能、新產(chǎn)品以及其他產(chǎn)品的更新和缺陷修復(fù)
8、程序。由于最新版的新增功能對于本書涉及的內(nèi)容沒有太大影響,再加上新版本安裝程序大、啟動和運行速度慢。故本書仍以目前最為流行的經(jīng)典版本MATLAB 7.5(R2007b)為基礎(chǔ)來進(jìn)行敘述,但排除了過渡性很強(qiáng)的內(nèi)容,使得本書的內(nèi)容對更高版本的環(huán)境仍可完全適用,同時也兼顧了當(dāng)前仍在較低配置計算機(jī)上使用MATLAB 6.5版本的用戶。,11,需要注意,對于使用Windows XP系統(tǒng)的用戶需要安裝MATLAB 6.5及以上的版本,使用Windows 7系統(tǒng)的用戶必須安裝MATLAB 7.6(R2008a)及以上的版本,否則不能正常使用或安裝MATLAB。,12,1.1.2 MATLAB操作界面,MAT
9、LAB啟動后將出現(xiàn)如圖1-1所示的操作界面。,由圖1-1可知,MATLAB的操作界面由功能菜單、工具欄、工作窗口和開始按鈕等組成。,13,1. MATLAB的工作窗口 在默認(rèn)狀態(tài)下,MATLAB的工作窗口由命令窗口(Command Window)、歷史命令(Command History)窗口、工作空間(Wotkspace)瀏覽器窗口和當(dāng)前工作目錄(Current Directory)窗口等組成。 在MATLAB命令窗口中的“”標(biāo)志為MATLAB的命令提示符,“|”標(biāo)志為輸入字符提示符。 如果用戶是第一次使用MATLAB,則建議首先在命令行中鍵入demo命令,它將啟動MATLAB的演示程
10、序,用戶可以在這些演示程序中領(lǐng)略到MATLAB所提供的強(qiáng)大的運算和繪圖功能。,14,2. 開始按鈕 開始按鈕(Start)位于MATLAB操作界面的左下角,單擊這個按鈕后,會出現(xiàn)MATLAB的操作菜單。這個菜單上半部分的選項包含MATLAB的各種交互操作界面,下半部分的選項的主要功能是窗口設(shè)置、訪問MATLAB公司的網(wǎng)頁和查看幫助文件等。 3. 功能菜單 為了更好地利用MATLAB,在其操作界面中設(shè)置了以下多個功能菜單。,15,* File 文件操作菜單 New 新建M文件、圖形、模型和圖形用戶界面 Open 打開.m,.fig,.mat,.mdl,.cdr
11、等文件 Close Command Window 關(guān)閉命令窗口 Import Data 從其他文件導(dǎo)入數(shù)據(jù) Save Workspace As 保存工作空間數(shù)據(jù)到相應(yīng)的路徑文件中窗口 Set Path 設(shè)置工作路徑 Preferences 設(shè)置命令窗口的屬性 Page Setup 頁面設(shè)置 Print 設(shè)置打印機(jī)屬性 Print Selection 選擇打印 Exit MATLAB 退出MATLAB操作界面,16,* Edit 編輯菜單 Undo 撤消上一步操作 Redo 重新執(zhí)行上一步操作 Cu
12、t 剪切 Copy 復(fù)制 Paste 粘貼 Paste Special 粘貼特定內(nèi)容 Select All 全部選定 Delete 刪除所選對象 Find 查找所需對象 Find Files 查找所需文件 Clear Command Window 清除命令窗口的內(nèi)容 Clear Command History 清除歷史窗口的內(nèi)容 Clear Workspace 清除工作區(qū)的內(nèi)容,17,* Debug 調(diào)試菜單 Open M-Files when Debugging 調(diào)試時打開M文件 St
13、ep 單步調(diào)試 Step In 單步調(diào)試進(jìn)入子函數(shù) Step Out 單步調(diào)試跳出子函數(shù) Continue 連續(xù)執(zhí)行到下一斷點 Clear Breakpoints in All Files 清除所有文件中的斷點 Stop if Errors/Warnings 出錯或報警時停止運行 Exit Debug Mode 退出調(diào)試模式,18,* Desktop 桌面菜單 Unlock Command Window 命令窗口設(shè)為當(dāng)前全屏活動窗口 Desktop Layout 桌面設(shè)計 Save Layout 保存桌面設(shè)計 O
14、rganize Layout 組織桌面設(shè)計 Command Window 顯示命令窗口 Command History 顯示歷史窗口 Current Directory 顯示當(dāng)前工作目錄 Workspace 顯示工作空間 Help 幫助窗口 Profiler 輪廓圖窗口 Toolbar 顯示/隱藏工具欄 Shortcuts Toolbar 顯示/隱藏快捷工具欄 Titles 顯示/隱藏標(biāo)題,19,* Window 窗口菜單 Close All Documents 關(guān)閉所有文檔 Com
15、mand Window 選定命令窗口為當(dāng)前活動窗口 Command History 選定歷史窗口為當(dāng)前活動窗口 Current Directory 選定當(dāng)前工作目錄為當(dāng)前活動窗口 Workspace 選定工作空間為當(dāng)前活動窗口,20,4. 工具欄 MATLAB操作界面工具欄中的工具“ ”分別用來建立M文件編輯窗口和打開編輯文件窗口;工具“ ” 對應(yīng)的功能與Windows操作系統(tǒng)類似;工具“ ”分別用來快捷啟動Simulink庫瀏覽窗口、GUIDE模版窗口和輪廓圖窗口;工具“ ”分別用來快捷設(shè)置當(dāng)前目錄和返回到當(dāng)前目錄的父目錄。,21,1.2.1 M
16、ATLAB語言的結(jié)構(gòu) MATLAB命令窗口就是 MATLAB語言的工作空間,因為MATLAB的各種功能的執(zhí)行必須在此窗口下才能實現(xiàn),在這種環(huán)境下輸入的MATLAB語句稱為“窗口命令”。 所謂窗口命令,就是在上述環(huán)境下輸入的MATLAB語句,并直接執(zhí)行它們完成相應(yīng)的運算、繪圖等。,1.2 MATLAB的基本操作,22,其中 等號右邊的表達(dá)式可由操作符或其它字符、函數(shù)和變量名組成,它可以是MATLAB允許的數(shù)學(xué)或矩陣運算,也可以包含MATLAB下的函數(shù)調(diào)用;等號左邊的變量名為MATLAB語句右邊表達(dá)式的返回值語句所賦值的變量的名字。 在調(diào)用函數(shù)時,MATLAB允許一次返回多個結(jié)果,這時等號左邊
17、的變量名需用 括起來,且各個變量名之間用逗號分隔開,如果左邊的變量名缺省時返回值自動賦給ans。,MATLAB語句的一般形式為 變量名表達(dá)式,23,表1-1 MATLAB中的算術(shù)運算符,MATLAB中使用的算術(shù)運算符如表1-1所示。對于矩陣來說,這里左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系。對于標(biāo)量,兩種除法運算的結(jié)果相同,如1/4和41有相同的值0.25。常用的十進(jìn)制符號如小數(shù)點、負(fù)號等,在MATLAB中也可以同樣使用,表示10的冪次要用符號e或E,如:3、-99、0.0001、1.6e-20、6.2e23。,24,在MATLAB中變量名必須以字母開頭,之后可以是任意字母、
18、數(shù)字或者下劃線(不能超過19個字符),但變量中不能含有標(biāo)點符號。變量名區(qū)分字母的大小寫,同一名字的大寫與小寫被視為兩個不同的變量。一般說來,在MATLAB下變量名可以為任意字符串,但MATLAB保留了一些特殊的字符串如表1-2所示。,25,表1-2 MATLAB中的特殊變量,26,MATLAB命令語句能即時執(zhí)行,它不是輸入完全部MATLAB命令語句經(jīng)過編譯、連接形成可執(zhí)行文件后才開始執(zhí)行,而是每輸入完一條命令,MATLAB就立即對其處理,并得出中間結(jié)果,完成了MATLAB所有命令語句的輸入,也就完成了它的執(zhí)行,直接便可得到最終結(jié)果。從這一點來說,MATLAB清晰地體現(xiàn)了類似“演算紙”的功能。例
19、如 a=5; b=6; c=a*b, d=c+2,其中第3,4條命令的執(zhí)行結(jié)果分別顯示如下: c= 30 d= 32,27,MATLAB語句既可由分號結(jié)束,也可由逗號或換行號結(jié)束,但它們的含義是不同的。如果用分號 “;”結(jié)束,則說明除了這一條命令外還有下一條命令等待輸入,MATLAB這時將不立即顯示運行的中間結(jié)果,而等待下一條命令的輸入,如以上前兩條命令;如果以逗號 “,”或回車結(jié)束,則將把左邊返回的內(nèi)容全部顯示出來,如以上后兩條命令。 當(dāng)然在任何時候也可輸入相應(yīng)的變量名來查看其內(nèi)容。如 a 結(jié)果顯示: a= 5,28,在MATLAB中,幾條語句也可以出現(xiàn)在同一行中,只要用分號或逗號
20、將它們分割。例如 a=5;b=6;c=a*b,d=c+2 這時可得與上面相同的結(jié)果。,29,MATLAB工作空間中的變量在退出MATLAB時會丟失,如果在退出MATLAB前想將工作空間中的變量保存到文件中,則可以調(diào)用save命令來完成,該命令的調(diào)用格式為 save 文件名 變量列表 其它選項 注意 這一命令中不能使用逗號,不同的元素之間只能用空格來分隔。,30,例如,想把工作空間中的a,b,c變量存到mydat.mat文件中去,則可用下面的命令來實現(xiàn)。 save mydat a b c 這里將自動地使用文件擴(kuò)展名mat。如果想將整個工作空間中所有的變量全部存入該文件,則應(yīng)采用下面的命令。 s
21、ave mydat,31,當(dāng)然這里的mydat也可省略,這時將工作空間中的所有變量自動地存入到文件matlab.mat中了。應(yīng)該指出的是,這樣存儲的文件均是按照二進(jìn)制的形式進(jìn)行的,所以得出的文件往往是不可讀的,如果想按照ASCII碼的格式來存儲數(shù)據(jù),則可以在命令后面加上一個控制參數(shù)-ascii,該選項將變量以單精度的ASCII碼形式存入文件中去,如果想獲得高精度的數(shù)據(jù)。則可使用控制參數(shù):-ascii -double。,32,MATLAB提供的load命令可以從文件中把變量調(diào)出并重新裝入到MATLAB的工作空間中去,該函數(shù)的調(diào)用格式與save命令同。 當(dāng)然工作空間中變量的保存和調(diào)出也可利用菜單項
22、中的File|Save Workspace As 和File|Open命令來完成。,33,如果想查看目前的工作空間中都有哪些變量名,則可以使用who命令來完成。例如當(dāng)MATLAB的工作空間中有a , b , c ,d四個變量名時,使用who 命令將得出如下的結(jié)果。 who,your variable are: a b c d 想進(jìn)一步了解這些變量的具體細(xì)節(jié),則可以使用whos命令來查看。,34,了解了當(dāng)前工作空間中的現(xiàn)有變量名之后,則可以使用clear命令來刪除其中一些不再使用的變量名,這樣可使得整個工作空間更簡潔,節(jié)省一部分內(nèi)存,例如想刪除工作空間中的a ,b兩個變量,則可以使用下面的命
23、令 clear a b 如果想刪除整個工作空間中所有的變量,則可以使用以下命令 clear MATLAB可以使用上下光標(biāo)鍵來前后查看已經(jīng)鍵入的命令。,35,,但僅靠一條一條地輸入語句,MATLAB難以實現(xiàn)復(fù)雜功能,為了實現(xiàn)諸如循環(huán)、條件、分支等功能,MATLAB利用了m文件,m文件是由一系列的MATLAB語句組成。,36,MATLAB實際上可以認(rèn)為是一種解釋性語言,用戶可以在MATLAB工作環(huán)境下一條一條地鍵入命令,也可以直接鍵入用MATLAB的語言編寫的m文件名,或它們結(jié)合起來使用,這樣MATLAB軟件對此命令或m文件中各條命令進(jìn)行翻譯,然后在MATLAB環(huán)境下對它進(jìn)行處理,最后返回運算
24、結(jié)果。所以說MATLAB語言的結(jié)構(gòu)可用下式進(jìn)行描述 MATLAB語言窗口命令m文件,37,1.2.2 MATLAB的磁盤文件,由于MATLAB本身可以被認(rèn)為是一高效的語言,所以用它可編寫出具有特殊意義的磁盤文件來,這些磁盤文件是由一系列的MATLAB語句組成,它既可能是一系列窗口命令語句,又可以是由各種控制語句和說明語句構(gòu)成的函數(shù)文件。 由于它們都是由ASCII碼構(gòu)成的, 其擴(kuò)展名均為“.m”,故統(tǒng)稱為m文件。,38,1.文本文件 文本文件(簡稱為MATLAB的程序)是一系列的MATLAB語句組成,它類似于DOS下的批處理文件,在MATLAB的提示符下直接鍵入文本文件名,便可自動執(zhí)行文件
25、中的一系列命令,直至給出最終結(jié)果。 文本文件在工作空間中運算的變量為全局變量。,39,例1-1 求函數(shù) 在x1= -2, x2=3, x3=1時的值。,解 首先在MATLAB的命令窗口中,利用菜單命令FileNewM-File,打開M文件編輯器,然后在編輯器中根據(jù)例中所給函數(shù)編寫以下文本文件,并以ex1_1_1為文件名進(jìn)行保存(后綴.m自動追加)。,%ex1_1_1.m x1=-2;x2=3;x3=1; y1=3*x1.2+x2+x3 y2=3*x1.2-x2-x3,,40, 當(dāng)以上文本文件ex1_1_1.m建立后,在MATLAB 命令窗口中輸入 ex1_1_1 執(zhí)行結(jié)果顯示: y1= 16
26、 y2= 8,41,由于文本文件中的變量為全局變量,故以上變量x1,x2,x3的值,也可在文本文件外先給定,此時的文本文件為 %ex1_1_2.m y1=3*x1.2+x2+x3 y2=3*x1.2-x2-x3 當(dāng)以上文本文件ex1_1_2.m建立后,利用以下命令,同樣可以得到以上結(jié)果。 x1=-2;x2=3;x3=1;ex1_1_2 以上兩種方式下,文本文件中變量的值都被保存下來,這與下面的函數(shù)文件是不同的。,42,2.函數(shù)文件 函數(shù)文件的功能是建立一個函數(shù),且這個函數(shù)可以同MATLAB的庫函數(shù)一樣使用,它與文本文件不同,在一般情況下不能單獨鍵入函數(shù)文件的文件名來運行一個
27、函數(shù)文件,它必須由其它語句來調(diào)用,函數(shù)文件允許有多個輸入?yún)?shù)和多個輸出參數(shù)值,其基本格式如下 function f1,f2,f3,=fun(x, y, z,) 注釋說明語句 函數(shù)體語句 其中 x, y, z,是形式輸入?yún)?shù);而f1,f2,f3,是返回的形式輸出參數(shù)值;fun是函數(shù)名。,43,實際上,函數(shù)名一般就是這個函數(shù)文件的磁盤文件名,注釋語句段的內(nèi)容同樣可用help命令顯示出來。 調(diào)用一個函數(shù)文件只需直接使用與這個 函數(shù)一致的格式 y1,y2,y3,=fun(i,j,k,) 其中 i,j,k,是相應(yīng)的實際輸入?yún)?shù),而y1,y2,y3,是相應(yīng)的實際輸出參數(shù)值。,44,例1-2 求
28、函數(shù)在x1= -2, x2= 3, x3= 1時的值,解 由于函數(shù)文件的建立與文本文件完全一樣,故應(yīng)首先根據(jù)例中所給函數(shù)在MATLAB的M文件編輯器下,建立以下函數(shù)文件ex1_2.m %ex1_2.m function b1,b2=ex1_2(a1,a2,a3) b1=3*a1.2+a2+a3; b2=3*a1.2-a2-a3;,45, 當(dāng)以上函數(shù)文件ex1_2.m建立后,在MATLAB命令窗口中輸入以下命令 x1=-2;x2=3;x3=1;y1,y2=ex1_2(x1,x2,x3) 結(jié)果顯示: y1= 16 y2= 8,46,函數(shù)文件中定義的變量為局部變量,也就是說它只在
29、函數(shù)內(nèi)有效。即在該函數(shù)返回后,這些變量會自動在MATLAB工作空間中清除掉,這與文本文件是不同的,但可通過命令 global 變量 來定義一個全局變量。 函數(shù)文件與文本文件另一個區(qū)別在于其第一行是由function開頭的,且有函數(shù)名和輸入形式參數(shù)與輸出形式參數(shù),若是沒有這一行的磁盤文件就是文本文件 。,47,由于m文件具有普通的文本格式,因而可以用任何編輯程序建立和編輯,但一般最常用、而且最為方便地是使用MATLAB命令窗口的File|New或File|Open菜單項對m文件進(jìn)行建立和編輯。,48,1.2.3 庫函數(shù)和數(shù)值顯示格式 (1)庫函數(shù) MATLAB提供了豐富的庫函數(shù),庫函數(shù)是根據(jù)系統(tǒng)
30、編制好了的,提供用戶直接使用的函數(shù),MATLAB中常用的基本數(shù)學(xué)函數(shù),如表1-3所示。 除了基本函數(shù)外,不同版本的MATLAB還增加了不同的有專門功能的庫函數(shù),也稱工具箱。例如通訊工具箱、控制系統(tǒng)工具箱和信號處理工具箱等等。 對于各種函數(shù)的功能和調(diào)用方法可使用MATLAB的聯(lián)機(jī)幫肋h(yuǎn)elp來查詢,其使用格式為 help 函數(shù)名,49,表1-3 MATLAB的基本函數(shù),50,2. 數(shù)值顯示格式,MATLAB可以使用format命令來改變顯示格式,其調(diào)用格式為 format 控制參數(shù) 其中 控制參數(shù)決定顯示格式,控制參數(shù)如表1-4表示。 除format命令外,還可由MATLAB命令窗口的Optio
31、ns|Numeric Format菜單項來設(shè)置顯示形式。,51,表1-4 format命令的控制參數(shù),52,1.2.4 基本輸入與輸出函數(shù),如果用戶想在計算的過程中給計算機(jī)輸入一個參數(shù),則可以使用input( )函數(shù)來進(jìn)行,該函數(shù)的調(diào)用格式為 變量名input(提示信息,選項) 這里提示信息可以為一個字符串顯示,它用來提示用戶輸入什么樣的數(shù)據(jù),input( )函數(shù)的返回值賦給等式左邊的變量名。,53,例如, 用戶想輸入x的值,則可以采用下面的命令來完成 x=input(Enter matrix x=); 執(zhí)行該命令時首先給出Enter matrixA=提示信息,然后等待用戶從鍵盤按MATL
32、AB格式輸入值,并把此值賦給x。 如果在input( )函數(shù)調(diào)用時采用了s選項,則允許用戶輸入一個字符串,此時需用單引號將所輸字符串括住。,54,MATLAB提供的命令窗口輸出函數(shù)主要有disp( )函數(shù),其調(diào)用格式為 disp(變量名) 其中變量名既可以為字符串,也可以為變量矩陣。例如 s= Hello World,,s= Hello World,disp(s),Hello World,55,MATLAB提供了較實用的字符串處理及轉(zhuǎn)換的函數(shù),例如int2str( )函數(shù)就可以方便在將一個整形數(shù)據(jù)轉(zhuǎn)換成字符串形式,該函數(shù)的調(diào)用格式為 cstr=int2str(n) 其中 n為一個整數(shù),而該
33、函數(shù)將返回一個相關(guān)的字符串cstr。 例如 num的數(shù)值為num=15,而在輸出中還想給出其它說明性附加信息,則可利用下面的語句 disp (The value of num is ,int2str(num), !ok),這樣可得 The value of num is 15 !ok,56,與int2str( ) 函數(shù)的功能及調(diào)用方式相似,MATLAB還提供了num2str( )函數(shù),可以將給出的實型數(shù)據(jù)轉(zhuǎn)換成字符串的表達(dá)式,最終也可以將該字符串輸出出來。例如給繪制的圖形賦以數(shù)字的標(biāo)題時可采用下面的命令 c=(70-32)/1.8; title(Room temperature is ,nu
34、m2str(c), degrees C),則會在當(dāng)前圖形上加上題頭標(biāo)注 Room temperature is 21.1111 degrees C,57,1.2.5 外部程序的調(diào)用,MATLAB允許在其命令窗口中調(diào)用可執(zhí)行文件(.exe),其調(diào)用方法是在MATLAB提示符下鍵入驚嘆號!后面直接跟該可執(zhí)行文件即可。MATLAB也允許采用這樣的方式來直接使用DOS命令,如磁盤復(fù)制命令copy可以由!copy來直接使用,而文件列表命令dir可以由!dir來調(diào)用。事實上,為了使用戶提供更大的方便,MATLAB已經(jīng)把一些常用的DOS命令做成了相應(yīng)的MATLAB命令,表1-5列出了MATLAB中提供的一
35、些文件管理命令。,58,表1-5 文件管理命令,59,1.3 MATLAB的控制語句,MATLAB是一個功能極強(qiáng)的高度集成化程序設(shè)計語言,它具備一般程序設(shè)計語言的基本語句結(jié)構(gòu),并且它的功能更強(qiáng),由它編寫出來的程序結(jié)構(gòu)簡單,可讀性強(qiáng)。和其它高級語言一樣,MATLAB也提供了條件轉(zhuǎn)移語句、循環(huán)語句等一些常用的控制語句,從而使得MATLAB語言的編程顯得十分靈活。,60,1.3.1 循環(huán)語句,MATLAB中可以使用兩種循環(huán)語句: for語句和while語句。 1. for語句的基本格式為 for 循環(huán)變量表達(dá)式1:表達(dá)式3:表達(dá)式2 循環(huán)語句組 end,61,例 MABLAB程序
36、 ex1_3_1.m 運行結(jié)果 mysun= 5050,62,2while語句的基本結(jié)構(gòu)為 while (條件式) 循環(huán)體條件組 end 其執(zhí)行方式為,若條件式中的條件成立,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達(dá)式是否仍然成立,如果表達(dá)式不成立,則跳出循環(huán),向下繼續(xù)執(zhí)行。,63,例如對于上面的例子,如果改用while循環(huán)語句,則可以寫出下面的程序 %ex1_3_2.m sum=0;i=1; while (i<=100) sum=sum+i;i=i+1; end MATLAB提供的循環(huán)語句for和while是允許多級嵌套的,而且它們之間也允許相互嵌套,這和C語言等高
37、級程序設(shè)計語言是一致的。,64,1.3.2 程序流控制語句,在程序設(shè)計語言中,經(jīng)常會遇到提前終止循環(huán)、跳出子程序、顯示執(zhí)行過程等,此時就要用到以下控制程序流命令。 1. echo命令 2. break命令 3. continue命令 4. pause命令 5. return命令,65,1.3.3 條件轉(zhuǎn)移語句,在程序設(shè)計中,經(jīng)常要根據(jù)一定的條件來執(zhí)行不同的命令。當(dāng)某些條件滿足時,只執(zhí)行其中的某個命令或某些命令。在MATLAB中,條件轉(zhuǎn)移語句包括: if-else-end語句 switch-case-otherwise語句。,66,1. if-else-end語句的基本格式,在MAT
38、LAB中,最簡單的條件結(jié)構(gòu):if-end語句命令格式為 if expression statements end 當(dāng)給出的條件式expression成立時,則執(zhí)行該條件塊結(jié)構(gòu)中的語句內(nèi)容statements,執(zhí)行完之后繼續(xù)向下執(zhí)行,若條件不成立,則跳出條件塊而直接向下執(zhí)行。,67,例1-4 求滿足 的最小m值. 例 MABLAB程序 ex1_4.m 運行結(jié)果 m= 45,68,注意, 這里使用了break命令,其作用就是中止上一級的for 語句循環(huán)過程,同樣while循環(huán)語句也在條件轉(zhuǎn)移語句中起著相當(dāng)重要的作用,因為在MATLAB下沒有提供絕對轉(zhuǎn)移的指
39、令。,69,例1-5 如果想對一個變量x自動賦值。當(dāng)從鍵盤輸入y或Y時(表示是),x自動賦為1值;當(dāng)從鍵盤輸入n 或N時(表示否),x自動賦為0值;輸入其他字符時終止程序。 例 MABLAB程序 ex1_5.m,70,MATLAB還提供了其他兩種條件結(jié)構(gòu):if-else-end 格式和if-else if-end 格式,這兩種格式的調(diào)用方法分別為 if expression statements1 else statements2 end,71,和 if expression1 statement
40、s1 else if expression2 statements2 else if expression3 statements3 end,72,2. switch-case-otherwise語句的基本格式 MATLAB中switch-case-otherwise語句的調(diào)用格式為 switch switch-expression case case-expression1 statements1; case case-expression2
41、 statements2; case case-expression3 statements3; otherwise statementsn; end,73,switch-case-otherwise語句中,switch-expression給出了開關(guān)條件,當(dāng)有case-expression與之匹配時,就執(zhí)行其后的語句,如果沒有case-expression與之匹配,就執(zhí)行otherwise后面的語句。在執(zhí)行過程中,只有一個case命令被執(zhí)行。當(dāng)執(zhí)行完命令后,程序就跳出分支結(jié)構(gòu),執(zhí)行end后面
42、的命令。,74,例對于以下MATLAB函數(shù)文件myfun.m。 function f=myfun(n) switch n case 0 f=1; case 1 f=2; otherwise f=8; end 在MATLAB命令窗口輸入以下命令 y=myfun(5) 結(jié)果顯示: y = 8,75,.4 MATLAB的繪圖功能,1.4.1 二維圖形 1基本形式 MATLAB最基本的繪圖函數(shù)為plot( )。 如果y是一個n 維向量,那么plot(y)繪制一個y元素和y元素排列序號1,2,, n之間關(guān)系的線性坐標(biāo)圖。如果y是一個nm維矩陣,那么p
43、lot(y)將同時繪制出每列元素與其排列序號1,2,,n之間關(guān)系的m條曲線。,76,例如 y=0 0.48 0.84 1 0.91 0.6 0.14; plot(y) 則顯示如圖1-2所示曲線。,77,如果x和y是兩個等長向量,那么 plot(x,y) 將繪制一條x和y的之間關(guān)系的線性坐標(biāo)圖。例如 x=0:0.01:2*pi; y=sin(x);plot(x,y) 則顯示如圖1-3所示曲線。,78,2多重線型,在同一圖形中可以繪制多重線型,基本命令格式為 plot(x1,y1,x2,y2,,xn,yn) 以上命令可將x1對y1,x2對y2,,xn對yn的圖形繪制在一個圖形中,而且分別采用不同
44、的顏色或線型。例如以下命令可顯示如圖1-4所示曲線。 x=0:0.1:2*pi;plot(x,sin(x),x,cos(x)),79,圖1-4,80,3.圖形修飾及文本標(biāo)注,MATLAB中對于同一圖形中的多重線,不僅可分別定義其線型,而且可分別選擇其顏色,帶有選項的曲線繪制命令的調(diào)用格式為 plot(x1, y1,選項,x2, y2,選項2,, xn, yn,選項n) 其中 x1,x2,,xn為x軸變量,y1, y2,, yn為y軸變量,選項如下表1-6所示。,81,表1-6 MATLAB的繪圖命令的各種選項,82,上表中的線型和顏色選項可以同時使用,例如 x=0:0.1:2*pi; plo
45、t(x,sin(x),-g, x,cos(x),-.r),83,繪制完曲線后,MATLAB還允許用戶使用它提供的特殊繪圖函數(shù)來對屏幕上已有的圖形加注釋、題頭或坐標(biāo)網(wǎng)格。例如 x=0:0.1:2*pi;y=sin(x);plot(x, y) title(Figure Example)給出題頭 xlabel(This is x axis) x軸的標(biāo)注 ylabel(This is y axis) y軸的標(biāo)注 grid增加網(wǎng)格 legand(sin(x)) 加圖例,84,除了在標(biāo)準(zhǔn)位置書寫標(biāo)題和軸標(biāo)志以外,MATLAB還允許在圖形窗口的位置利用line( ) 和text( )命令畫直線或?qū)懽址?,?/p>
46、們的調(diào)用格式分別為 line(x, y) 和 text(x, y,chstr,選項) 其中 line( )函數(shù)在給定的圖形窗口上繪制一條由向量x 和y定義的折線,text( )函數(shù)是在指定的點(x,y)處寫一個chstr繪出的字符串,而選項決定x,y坐標(biāo)的單位,如選項為sc,則x,y表示規(guī)范化的窗口相對坐標(biāo),其范圍為0到1,即左下角坐標(biāo)為(0,0),而右上角的坐標(biāo)為(1,1)。,85,用text( )命令可以在圖形中的任意位置加上文本說明,但是必須知道其位置坐標(biāo),而利用另一個函數(shù)gtext( ),則可以用鼠標(biāo)來對要添加的文本字符串定位。在MATLAB的工作空間中鍵入下列命令 gtext(s
47、in(x)) 那么在圖中,將會出現(xiàn)一個十字叉 ,用鼠標(biāo)拖動它到添加文本的位置,單擊鼠標(biāo),gtext( )命令中的文本字符串sin(x)就自動添加到指定的位置。,86,4. 圖形控制 MATLAB允許將一個圖形窗口分割成nm部分,對每一部分可以用不同的坐標(biāo)系單獨繪制圖形,窗口分割命令的調(diào)用格式為 subplot(n,m,k) 其中 n,m分別表示將這個圖形窗口分割的行列數(shù),k表示每一部分的代號,例如想將窗口分割成43個部分,則右下角的代號為 12,MATLAB最多允許99的分割。,87,盡管MATLAB可以自動根據(jù)要繪制曲線數(shù)據(jù)的范圍選擇合適的坐標(biāo)系,使得曲線能夠盡可能清晰地顯示出
48、來,但是,如果覺得自動選擇的坐標(biāo)還不合適時,還可以用手動的方式來選擇新的坐標(biāo)系,調(diào)用函數(shù)的格式為 axis(xmin, xmax, ymin, ymax) 另外,MATLAB還提供了清除圖形窗口命令clg、保持當(dāng)前窗口的圖形命令hold、放大和縮小窗口命令zoom等。,88,5. 特殊坐標(biāo)圖形 除了基本的繪圖命令plot( )外,MATLAB還允許繪制極坐標(biāo)曲線、對數(shù)坐標(biāo)曲線、條形圖和階梯圖等,其常用的函數(shù)如表1-7所示。,表1-7 特殊二維曲線繪制函數(shù),89,(1) 極坐標(biāo)曲線繪制函數(shù)的調(diào)用格式為 polar(theta,rho,選項) 其中,theta和rho分別為長度相同的角度向量和幅
49、值向量;選項的內(nèi)容和plot( )函數(shù)的基本一致。,90,(2) 對數(shù)和半對數(shù)曲線繪制函數(shù)的調(diào)用格式分別為 semilogx(x,y,選項) 繪制橫軸為對數(shù)標(biāo)度的圖形,選項同plot( ) semilogy(x,y,選項) 繪制縱軸為對數(shù)標(biāo)度的圖形,選項同plot( ) loglog(x,y,選項) 繪制兩個軸均為對數(shù)標(biāo)度的圖形,選項同plot( )圖1-5 繪圖窗口的分割與不同圖形繪制 函數(shù)semilogx( )僅對橫坐標(biāo)進(jìn)行對數(shù)變換,而縱坐標(biāo)仍保持線性坐標(biāo);而semilogy( )只對縱坐標(biāo)進(jìn)行對數(shù)變換,而橫坐標(biāo)仍保持線性坐標(biāo);loglog( )則分別對橫縱坐標(biāo)都進(jìn)行
50、對數(shù)變換(最終得出全對數(shù)坐標(biāo)的曲線來)。選項的定義與 plot( ) 函數(shù)的完全一致。,91,例1-6 利用圖形窗口分割方法將下列極坐標(biāo)方程 =cos(/3)+1/9 用四種繪圖方式畫在不同的窗口中。 解 MATLAB程序 ex1_6.m 則顯示如圖1-5所示曲線。,92,圖1-5,93,(3) 與線性坐標(biāo)向量的選取不同,在MATLAB下還給出了一個實用的函數(shù)logspace( )按對數(shù)等間距的分布來產(chǎn)生一個向量,該函數(shù)的調(diào)用格式為 x=logspace(n,m,z) 其中 10n和10m分別表示向量的起點和終點,而z表示需要產(chǎn)生向量點個數(shù),當(dāng)這參數(shù)忽略時,z將采用默認(rèn)值50。,94,6. 函
51、數(shù)圖形 MATLAB還允許調(diào)用函數(shù)fplot( )或ezplot( )來直接繪制出函數(shù)的圖形,其函數(shù)的調(diào)用格式為 fplot(f,a,b,N) 和 ezplot(f,g,a,b,N) 其中,f,g為函數(shù)名,它既可為自定義的任意M函數(shù),也可為基本數(shù)學(xué)函數(shù);a,b為繪圖區(qū)間;N為點數(shù),默認(rèn)時將取N=25。 例如繪制如圖1-3所示的正弦函數(shù)在一個周期內(nèi)的曲線,可采用如下命令 fplot(sin,0,2*pi),95,利用函數(shù)ezplot( )可以直接繪制隱函數(shù)曲線,隱函數(shù)即滿足f(x,y)=0方程的x,y之間的關(guān)系式。因為很多隱函數(shù)無法求出x,y之間的關(guān)系,所以無法先定義一個x向量再求出相應(yīng)的y
52、向量,從而不能采用plot( )函數(shù)來繪制其曲線。另外,即使能求出x,y之間的顯式關(guān)系,但不是單值繪制,則繪制起來也是很麻煩的。,96,例1-7 試?yán)L制隱函數(shù) 的曲線。 解 MATLAB命令如下。 ezplot(x2*sin(x+y2)+y2*exp(x+y)+5*cos(x2+y)) 執(zhí)行以上MATLAB命令,結(jié)果顯示如圖1-6所示曲線。,97,7 .利用鼠標(biāo)繪制圖形 MATLAB允許利用鼠標(biāo)來點選屏幕點,命令格式為 x, y,button=ginput(n) 其中 n 為選擇點的數(shù)目,返回的x, y 向量分別存儲被點中的 n個點的坐標(biāo),而button 亦為一個n 維向量,
53、它的各個分量為鼠標(biāo)鍵的標(biāo)號,如button(i)=1 ,則說明第i 次按下的是鼠標(biāo)左鍵,而該值為 2 或3則分別對應(yīng)于中鍵和右鍵。,98,例1-8用鼠標(biāo)左鍵繪制折線,同時在鼠標(biāo)左鍵點中的位置輸出一個含有該位置信息的字符串,利用鼠標(biāo)中鍵或右鍵中止繪制。 解 MATLAB程序 ex1_8.m,99,1.4.2 三維圖形 1三維曲線繪制 與二維圖形相對應(yīng),MATLAB提供了plot3( )函數(shù),它允許在一個三維空間內(nèi)繪制出三維的曲線,該函數(shù)的調(diào)用格式為 plot3(x, y, z,選項) 其中 x, y, z為維數(shù)相同的向量,分別存儲曲線的三個坐標(biāo)的值,選項的意義同plot(
54、)函數(shù)。例利用以下命令,可得到圖1-7所示曲線。 t=0:pi/50:10*pi;plot3(sin(t),cos(t),t),100,,圖1-7,101,2三維曲面繪制 如果已知二元函數(shù),則可以繪制出該函數(shù)的三維曲面圖。在繪制三維圖之前,應(yīng)該先調(diào)用meshgrid( )函數(shù)生成網(wǎng)格矩陣數(shù)據(jù)x和y,然后可以按函數(shù)公式用點運算的方式計算出z矩陣,最后就可以用mesh( )等函數(shù)進(jìn)行三維圖形繪制了。 MATLAB提供的mesh( )函數(shù)用于繪制三維表面網(wǎng)格圖,該函數(shù)的調(diào)用格式為 mesh(x,y,z,c),102,例1-9 試?yán)L制二元函數(shù)的曲線。 解 MATLAB命令如下。 x,y=meshgri
55、d(-3:0.1:3,-2:0.1:2); z=(x.2-2*x).*exp(-x.2-y.2-x.*y);mesh(x,y,z) 執(zhí)行以上命令便可得到圖1-8所示曲線。,,103,關(guān)于三維圖形的繪制,常用的其他命令有 surf(x,y,z) 繪制三維表面圖形 surfc(x,y,z) 繪制帶有等高線的三維表面圖形 surf1(x,y,z) 繪制帶有陰影的三維表面圖形 waterfall(x,y,z) 繪制瀑布形三維圖形 contour(x,y,z) 等高線圖形。,104,3三維圖形視角設(shè)置 MATLAB三維圖形顯示中提供了修改視角的功能,允許用戶從任意的角度觀察三維圖形,
56、實現(xiàn)視角轉(zhuǎn)換有兩種方法。其一是使用圖形窗口工具欄中提供的三維圖形轉(zhuǎn)換按鈕來可視地對圖形進(jìn)行旋轉(zhuǎn);其二是用view( )函數(shù)有目的地進(jìn)行旋轉(zhuǎn)。 函數(shù)view( )的調(diào)用格式為 view(,),105,例1-10 試在同一窗口中繪制二元函數(shù)曲面的三視圖和三維表面圖形。 解 MATLAB命令如下。 x,y=meshgrid(-3:0.1:3,-2:0.1:2); z=(x.2-2*x).*exp(-x.2-y.2-x.*y); subplot(2,2,1);surf(x,y,z);view(0,90); subplot(2,2,2);surf (x,y,z);view(90,0); subplot(
57、2,2,3);surf(x,y,z);view(0,0); subplot(2,2,4);surf (x,y,z); 執(zhí)行以上命令便可得到圖1-9所示曲線。,,106,107,1.4.3 圖像處理 MATLAB提供了簡單的圖像輸入輸出功能,而圖像處理工具箱提供了圖像處理的強(qiáng)大功能。這里由于篇幅限制,僅介紹簡單的入門知識。 1讀圖像文件 圖像文件讀取函數(shù)為imread( )其調(diào)用格式為 W=imread(文件名) 該命令將文件中的圖像讀入MATLAB工作空間,生成8位無符號整型三維數(shù)組W,其中W(:,:,1),W(:,:,2)和W(:,:,3)分別對應(yīng)于彩色圖像的紅色、綠色和藍(lán)色分量。如果
58、文件中存儲的是灰度圖像,則W為矩陣,存儲圖像的像素值。,,108,2圖像顯示 MATLAB及其圖像處理工具箱中提供了多個圖像顯示函數(shù),如image( ),imview( ),imshow( )和imtool( ),它們各有特色。 3圖像顏色空間轉(zhuǎn)換 彩色圖到灰度圖的轉(zhuǎn)換可以由函數(shù)rgb2gray( )完成。另外,不同顏色空間的圖像可以通過如rgb2hsv( ),hsv2rgb( )等進(jìn)行轉(zhuǎn)換。,,109,4圖像邊緣提取 圖像邊緣提取是圖像識別的重要基礎(chǔ)工作。利用MATLAB中的edge( )函數(shù),可以提取圖像邊緣,該函數(shù)的調(diào)用格式為 W1=edge(W,m) 其中,W灰度圖像矩陣;m為提
59、取算法,可以選擇canny,sobel等不同算法,默認(rèn)算法為Canny算法。,,110,1.5 MATLAB的數(shù)值運算,MATLAB具有強(qiáng)大的數(shù)值能力,它不僅能對矩陣和向量進(jìn)行相應(yīng)的運算,而且也可處理多項式的解、數(shù)據(jù)分析、函數(shù)的極值、線性方程組的解、函數(shù)的微積分和函數(shù)繪圖等問題。,111,1.5.1 矩陣運算,MATLAB的基本數(shù)據(jù)單元是不需要指定維數(shù)的復(fù)數(shù)矩陣,它提供了各種矩陣的運算與操作,因它既可以對矩陣整體地進(jìn)行處理,也可以對矩陣的某個或某些元素進(jìn)行單獨地處理,所以在MATLAB環(huán)境下矩陣的操作同數(shù)的操作一樣簡單。,112,1. 矩陣的實現(xiàn),在MATLAB語言中不必描述矩陣的維數(shù)和類型,
60、它們是由輸入的格式和內(nèi)容來確定的,例如當(dāng) A1 2時,把A當(dāng)作一個2維向量; A5時,把A當(dāng)作一個標(biāo)量; A12i時,把A當(dāng)作一個復(fù)數(shù)。,113,1) 矩陣的賦值 矩陣可以用以下幾種方式進(jìn)行賦值 * 直接列出元素的形式; * 通過語句和函數(shù)產(chǎn)生; * 建立在文件中; * 從外部的數(shù)據(jù)文件中裝入。,114,(1) 簡單矩陣的輸入 對于比較小的簡單矩陣可以使用直接排列的形式輸入,把矩陣的元素直接排列到方括號中,每行內(nèi)的元素間用空格或逗號分開,行與行的內(nèi)容用分號隔開。 在MATLAB下的輸入方式為 A=1, 2, 3; 4, 5, 6; 7, 8, 9 或 A=1 2 3; 4 5 6; 7
61、 8 9 都將得相同的結(jié)果,115,對于比較大的矩陣,可以用回車鍵代替分號,對每一行的內(nèi)容分行輸入,也可利用續(xù)行符號(),把一行的內(nèi)容分兩行來輸入。 如前面的矩陣還可以等價地由下面兩種方式來輸入。 A= 1 2 3 ; 4 5 6 7 8 9 或 A=1 2 3 ;4 5 6; 7 8 9 輸入后A矩陣將一直保存在工作空間中,除非被替代和清除,在MATLAB的命令窗口中可隨時查看其內(nèi)容。,116,(2) 利用語句或函數(shù)產(chǎn)生矩陣 在MATLAB中,矩陣也可利用下例語句來產(chǎn)生 s1:s2:s3 其中,s1為起始值;s3為終止值;s2為步矩。使用這樣的命令就可以產(chǎn)生一個由s1開始,以步距s
62、2自增,并終止于s3的行向量,如,117,y=0:pi/4:pi,y= 0.7854 1.5708 2.3562 3.1416 如果S2省略,則可以認(rèn)為自增步距為1,例如 x=1:5 結(jié)果顯示: x= 1 2 3 4 5,118,利用size( )函數(shù)可測取一個矩陣的維數(shù),該函數(shù)的調(diào)用格式為 n, m=size(A) 其中 A為要測試的矩陣名,而返回的兩個參數(shù)n和m分別為A矩陣的行數(shù)和列數(shù)。 當(dāng)要測試的變量是一個向量時,當(dāng)然仍可由size( )函數(shù)來得出其大小,更簡潔地,用戶可以使用length( )函數(shù)來求出,該函數(shù)的調(diào)用格式為 n=length(x) 其中 x為要測試的向量名,而返回
63、的n為向量x的元素個數(shù)。,119,如果對一個矩陣A用length(A)函數(shù)測試,則返回該矩陣行列的最大值,即該函數(shù)等效于max(size(A))。,120,2) 矩陣的元素 MATLAB的矩陣元素可用任何表達(dá)式來描述,它既可以是實數(shù),也可以是復(fù)數(shù),例如 B= -1/3 1.3; sqrt(3) (1+2+3)*i,B -0.3333 1.3000 1.7321 0+6.0000i MATLAB允許把矩陣作為元素來建立新的矩陣,例如,利用A矩陣通過下面的語句 C= A;10,11,12,121,MATLAB還允許對一個矩陣的單個元素進(jìn)行賦值和操作,例如如果想將A矩陣的第2行第3列的元素賦
64、為100,則可通過下面的語句來完成 A(2,3)=100,A= 12 3 4 5 100 78 9 這時將只改變此元素的值,而不影響其它元素的值。,122,如果給出的行數(shù)或列數(shù)大于原來矩陣的范圍,則MATLAB將自動擴(kuò)展原來的矩陣,并將擴(kuò)展后未賦值的矩陣元素置為0。例如如果想把矩陣A的第4 行第5列元素的值定義為8,就可以通過下面語句來完成。 A(4,5)=8,A= 1 2 3 0 0 4 5 100 0 0 7 8 9 0 0 0 0 0 0 8,123,3) 特殊矩陣的實現(xiàn) 在MATLAB中特殊矩陣可以利用函數(shù)來建立。 (1) 單位矩陣函數(shù)eye( ) 基本格式 Aeye(n)
65、 產(chǎn)生一個n階的單位矩陣A 或 Aeye(size(B)) 產(chǎn)生與B矩陣同階的單位矩陣A,124,(2)零矩陣函數(shù)zeros( ) (3) 1矩陣函數(shù)ones( ) (4) 隨機(jī)元素矩陣函數(shù)rand( ) (5)對角矩陣函數(shù)diag( ) (6) 伴隨矩陣函數(shù)compan( ) (7) 上三角矩陣函數(shù)triu( )和下三角矩 陣函數(shù)tril( ),125,2. 矩陣的基本運算,矩陣運算是MATLAB的基礎(chǔ),MATLAB的矩陣運算功能十分強(qiáng)大,并且運算的形式和一般的數(shù)學(xué)表示十分相似。 1)矩陣的轉(zhuǎn)置 矩陣轉(zhuǎn)置的運算符為“ ”。例如 A=1 2 3;4 5 6;B= A,A= 1
66、 4 2 5 3 6,126,2)矩陣的加和減,矩陣的加減法的運算符為“”和“”。矩陣只有同階方可進(jìn)行加減運算,標(biāo)量可以和矩陣進(jìn)行加減運算但應(yīng)對矩陣的每個元素施加運算。例如 A=1 2 3;4 5 6; B=A+1,B= 2 3 4 5 6 7,127,3)矩陣的乘法,矩陣的乘法運算符為“*”。 當(dāng)兩個矩陣中前一矩陣的列數(shù)和后一矩陣的行數(shù)相同時,可以進(jìn)行乘法進(jìn)行運算,這與數(shù)學(xué)上的形式是一致的。例 CA*B; 在MATLAB中還可進(jìn)行矩陣和標(biāo)量相乘,其結(jié)果為標(biāo)量與矩陣中的每個元素分別相乘。,128,4)矩陣的除法,矩陣的除法有兩種運算符“”和“/”,分別表示左除和右除。 一般地講,x= AB是A*x=B的解,x=B/A是x*A=B的解,通常ABB/A, 而AB=inv(A)*B, B/A= B*inv(A)。,129,5)矩陣的乘方,矩陣的乘方運算符為“”。 一個方陣的乘方運算可以用AP來表示 。P為正整數(shù),則A的P次冪即為A矩陣自乘P次。如果P為負(fù)整數(shù),則可以將A自乘 P次,然后對結(jié)果進(jìn)行求逆運算,就可得出該乘方結(jié)果。如果P是一個分?jǐn)?shù),例如Pmn,其中n和m均為整數(shù),則首先應(yīng)該將
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案