MATLAB程序設(shè)計(jì)及應(yīng)用(第2版)課件(全)全書教學(xué)教程完整版電子教案最全幻燈片_第1頁(yè)
MATLAB程序設(shè)計(jì)及應(yīng)用(第2版)課件(全)全書教學(xué)教程完整版電子教案最全幻燈片_第2頁(yè)
MATLAB程序設(shè)計(jì)及應(yīng)用(第2版)課件(全)全書教學(xué)教程完整版電子教案最全幻燈片_第3頁(yè)
MATLAB程序設(shè)計(jì)及應(yīng)用(第2版)課件(全)全書教學(xué)教程完整版電子教案最全幻燈片_第4頁(yè)
MATLAB程序設(shè)計(jì)及應(yīng)用(第2版)課件(全)全書教學(xué)教程完整版電子教案最全幻燈片_第5頁(yè)
已閱讀5頁(yè),還剩251頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、MATLAB程序設(shè)計(jì)及應(yīng)用(第2版)第1章 MATLAB入門與基本操作1.1 MATLAB的發(fā)展沿革 MATLAB是美國(guó)New Mexico大學(xué)的數(shù)學(xué)和計(jì)算機(jī)教授Cleve Moler在20世紀(jì)70年代中后期講授線性代數(shù)課程時(shí)首創(chuàng)的,全名為MATrix LABoratory(矩陣實(shí)驗(yàn)室)。 特點(diǎn):用Fortran語(yǔ)言編寫的,只能做矩陣運(yùn)算; 繪圖用星號(hào)描點(diǎn)的形式畫圖; 提供了幾十個(gè)內(nèi)部函數(shù)。 第1章 MATLAB入門與基本操作 1984年,Cleve Moler等一批數(shù)學(xué)家和軟件專家成立了MathWorks軟件開(kāi)發(fā)公司,對(duì)MATLAB進(jìn)行了大規(guī)模的擴(kuò)展和改進(jìn),并與同年推出了第一個(gè)MATLAB的

2、商用版本。 特點(diǎn):采用C語(yǔ)言進(jìn)行改寫; 具有較多的內(nèi)部函數(shù)。1.1 MATLAB的發(fā)展沿革 1993年推出了MATLAB4.0版,同年又推出了MATLAB4.2版。特點(diǎn):基于PC的以Windows為操作系統(tǒng)平臺(tái); 增加了Simulink,Control,Neural Network, Optimization,Signal Processing,Spline, Robust Control等工具箱; 4.2版首次開(kāi)發(fā)了Symbolic Math工具箱。1.1 MATLAB的發(fā)展沿革 1997年推出了MATLAB5.0版。特點(diǎn):基于Windows 95 ; 實(shí)現(xiàn)了真正的32位運(yùn)算,數(shù)值計(jì)算更快;

3、圖形表現(xiàn)更豐富有效,編程更簡(jiǎn)潔直觀; 用戶界面十分友好。 1.1 MATLAB的發(fā)展沿革 2000年推出了MATLAB6.0版(Release 12)。特點(diǎn):在核心數(shù)值算法、界面設(shè)計(jì)、外部接口、應(yīng)用桌 面等方面有了極大的改進(jìn)。1.1 MATLAB的發(fā)展沿革 2004年推出了MATLAB7.0版(Release 14)。特點(diǎn):集成了MATLAB7.0編譯器、Simulink6.0圖形仿真器及許多工具箱,在編程環(huán)境、代碼效率、數(shù)據(jù)可視化、文件I/O等方面都進(jìn)行了全面的升級(jí)。1.1 MATLAB的發(fā)展沿革 從2006年開(kāi)始 ,MathWorks公司在產(chǎn)品的發(fā)表模式發(fā)生了變化。每年的3月和9月進(jìn)行兩次

4、產(chǎn)品發(fā)布,版本的命名方式為“R+年份+代碼”,對(duì)應(yīng)于上下半年的代碼分別是a和b 。 MATLAB R2013b(即MATLAB8.2版)是2013年9月推出的產(chǎn)品。 最近一次版本更新是2015年9月推出的MATLAB R2015b,對(duì)許多工具箱作了相應(yīng)的升級(jí),使得MATLAB的功能更強(qiáng),應(yīng)用更簡(jiǎn)便。1.1 MATLAB的發(fā)展沿革1.2 MATLAB的特點(diǎn)及應(yīng)用領(lǐng)域優(yōu)點(diǎn):(1)以復(fù)數(shù)數(shù)組(包括矩陣)作為基本編程單元,每個(gè)變量代表一個(gè)數(shù)組,其中的每個(gè)元素都可以是復(fù)數(shù)。數(shù)組的維數(shù)不需要預(yù)先定義即可采用,還可以隨時(shí)改變數(shù)組的尺寸。 (2)易學(xué)易用,函數(shù)名和表達(dá)式更接近書寫計(jì)算公式的思維表達(dá)方式。使用M

5、ATLAB編程猶如在草稿紙上排列公式和求解問(wèn)題。 第1章 MATLAB入門與基本操作1.2 MATLAB的特點(diǎn)及應(yīng)用領(lǐng)域(3)是一種面向科學(xué)和工程計(jì)算的高級(jí)語(yǔ)言。它以數(shù)組運(yùn)算為基礎(chǔ),極少的代碼就可以實(shí)現(xiàn)復(fù)雜的功能。 (4)具有強(qiáng)大而智能化的圖形功能。 (5)提供了許多面向應(yīng)用問(wèn)題求解的工具箱函數(shù),從而大大方便科研人員的使用。 (6)開(kāi)放性好,易于擴(kuò)充。 (7) 與C語(yǔ)言和Fortran語(yǔ)言有良好的接口,可以實(shí)現(xiàn)混合編程。 1.2 MATLAB的特點(diǎn)及應(yīng)用領(lǐng)域缺點(diǎn):(1)運(yùn)行效率較低,執(zhí)行相同功能的代碼運(yùn)行時(shí)間較長(zhǎng)。 (2)用戶編制的程序文件為文本文件,可以用文本編輯器直接打開(kāi),不利于保密。 (

6、3)訪問(wèn)硬件的能力相對(duì)較差,圖形用戶界面功能不夠靈活。 1.2 MATLAB的特點(diǎn)及應(yīng)用領(lǐng)域應(yīng)用領(lǐng)域: 數(shù)據(jù)分析; 數(shù)值與符號(hào)計(jì)算; 工程與科學(xué)繪圖; 控制系統(tǒng)設(shè)計(jì); 電路分析計(jì)算; 通信系統(tǒng)設(shè)計(jì)與仿真; 航天工業(yè); 汽車工業(yè); 生物醫(yī)學(xué)工業(yè); 語(yǔ)音處理; 圖像與數(shù)字信號(hào)處理; 財(cái)務(wù)、金融分析; 建模、仿真與樣機(jī)開(kāi)發(fā); 新算法研究開(kāi)發(fā)。1.3 MATLAB的安裝啟動(dòng) 與操作桌面簡(jiǎn)介 1.3.1 MATLAB的安裝和啟動(dòng)第1章 MATLAB入門與基本操作 MATLAB 可以在Windows環(huán)境下直接安裝。在MATLAB安裝完成后,會(huì)在Windows桌面上自動(dòng)生成MATLAB的快捷方式圖標(biāo) 。 1

7、.3.1 MATLAB的安裝和啟動(dòng)雙擊圖標(biāo) ,就打開(kāi)了如圖1.1所示的MATLAB默認(rèn)窗口(Desktop)。圖1.11.3 MATLAB的安裝啟動(dòng) 與默認(rèn)窗口簡(jiǎn)介 1.3.2 MATLAB默認(rèn)窗口簡(jiǎn)介 圖1.1所示的MATLAB默認(rèn)窗口分為5個(gè)區(qū)域:指令窗、當(dāng)前目錄窗、歷史指令窗、工作空間窗和Details窗。 另外,在MATLAB默認(rèn)窗口的上方,還嵌入了菜單欄和工具欄,如圖1.1所示。它們的使用及選擇方式與Windows環(huán)境中的相同。 1.3.2 MATLAB默認(rèn)窗口簡(jiǎn)介 指令窗(Command Window) 該窗口是進(jìn)行各種MATLAB操作的最主要窗口。它位于MATLAB默認(rèn)窗口的正中

8、間。用戶可以在該窗口中提示符“fx”后直接鍵入指令,按“Enter”鍵后,即可運(yùn)行并顯示除窗口外的所有運(yùn)行結(jié)果。當(dāng)指令窗口提示符為“fx”時(shí),表示系統(tǒng)已經(jīng)準(zhǔn)備好,用戶可以輸入指令、函數(shù)、表達(dá)式,按“Enter”鍵后便可執(zhí)行。 當(dāng)前目錄窗(Current Directory Browser) 該窗口位于MATLAB默認(rèn)窗口的左上方。它顯示了當(dāng)前目錄下所有文件的文件名、文件類型、最后修改時(shí)間和文件相關(guān)描述等信息。 1.3.2 MATLAB默認(rèn)窗口簡(jiǎn)介 歷史指令窗(Command History) 該窗口位于MATLAB默認(rèn)窗口的右下方。它自動(dòng)記錄自MATLAB安裝起所有已經(jīng)運(yùn)行過(guò)的指令、函數(shù)、表達(dá)

9、式,以及它們的運(yùn)行日期和時(shí)間。該窗口中的所有指令、文字都允許復(fù)制、重新運(yùn)行及用于產(chǎn)生M文件。 工作空間窗(Workspace Browser) 該窗口位于MATLAB默認(rèn)窗口的右上方。它列出了MATLAB工作空間中所有的變量名、大小、字節(jié)數(shù)和變量類型說(shuō)明。在該窗口中,可以對(duì)變量進(jìn)行觀察、編輯、提取、保存和刪除等操作。1.3.2 MATLAB默認(rèn)窗口簡(jiǎn)介 Details窗 該窗口位于MATLAB默認(rèn)窗口的右下方,用于顯示文件的細(xì)節(jié)。 在MATLAB默認(rèn)窗口上方,還嵌入了菜單欄和工具欄,它們的使用及選擇方式與Windows環(huán)境中的相同。 1.3 MATLAB的安裝啟動(dòng) 與默認(rèn)窗口簡(jiǎn)介 1.3.3

10、MATLAB R2013b界面菜單工具欄 MATLAB R2013b的界面相比較與其舊版本有了很大的差別,菜單和工具合為一體,即菜單工具。在MATLAB啟動(dòng)后,在默認(rèn)窗口(見(jiàn)圖1.1)的上方,用戶可以看到如圖1.2所示的菜單工具欄。頂層菜單有HOME(基本菜單和工具)、PLOTS(繪圖工具)和APPS(應(yīng)用程序)共3項(xiàng)。 圖1.21.4 MATLAB指令窗操作入門 1.4.1 MATLAB指令窗簡(jiǎn)介 第1章 MATLAB入門與基本操作 MATLAB指令窗位于MATLAB默認(rèn)窗口的正中間,如圖1.1所示。如果用戶希望得到脫離默認(rèn)窗口的幾何獨(dú)立的指令窗,只要單擊圖1.2中的圖標(biāo) ,并在下拉菜單中選

11、擇 就可以獲得如圖1.3所示的指令窗。1.4.1 MATLAB指令窗簡(jiǎn)介 圖1.3 如果希望讓幾何獨(dú)立的指令窗嵌入回MATLAB默認(rèn)窗口中,則只要單擊下拉菜單中的圖標(biāo) 即可。 1.4 MATLAB指令窗操作入門 1.4.2 最簡(jiǎn)單的計(jì)算器使用方法 【例1.1】 求55+5(7.5-0.5)23的運(yùn)算結(jié)果。圖 最簡(jiǎn)單的計(jì)算器使用方法 【說(shuō)明】 MATLAB指令是帶有提示符“”的,從而可以區(qū)分是指令還是MATLAB給出的結(jié)果。 MATLAB的運(yùn)算符(如、等)都是各種計(jì)算程序中常見(jiàn)的習(xí)慣符號(hào)。 在鍵入一條指令后,必須按下“Enter”鍵,該條指令才會(huì)被執(zhí)行。 計(jì)算結(jié)果顯示中的“ans

12、”是英文“answer”的縮寫,其含義是“運(yùn)算答案”。這是MATLAB中的一個(gè)預(yù)定義的默認(rèn)變量。1.4.2 最簡(jiǎn)單的計(jì)算器使用方法 【例1.2】 簡(jiǎn)單數(shù)組 的輸入。1.4.2 最簡(jiǎn)單的計(jì)算器使用方法 【說(shuō)明】 直接輸入數(shù)組時(shí),數(shù)組元素之間用空格或逗號(hào)分隔,數(shù)組行之間用分號(hào)分隔,整個(gè)數(shù)組放在方括號(hào)對(duì)“”里。注意:標(biāo)點(diǎn)符號(hào)必須在英文狀態(tài)下輸入! 在MATLAB中,不必事先對(duì)數(shù)組的維數(shù)進(jìn)行任何說(shuō)明,存儲(chǔ)將自動(dòng)配置。 指令執(zhí)行后,數(shù)組A被保存在MATLAB的工作空間中。如果用戶不對(duì)它進(jìn)行重新賦值,或用clear指令清除它,該數(shù)組將會(huì)一直保存在工作空間中,直到本次MATLAB指令窗被關(guān)閉為止。 MATL

13、AB對(duì)字母的大小寫是敏感的。在本例中,數(shù)組賦給了變量A,而不是小寫的a。1.4.2 最簡(jiǎn)單的計(jì)算器使用方法 按照MATLAB的變量定義規(guī)則,將所有變量都定義為數(shù)組。標(biāo)量被看作(11)的數(shù)組,向量認(rèn)為是(1n)或(m1)的數(shù)組,矩陣認(rèn)為是(mn)的數(shù)組。 1.4.2 最簡(jiǎn)單的計(jì)算器使用方法 【例1.3】數(shù)組的分行輸入 【說(shuō)明】 在這種輸入法中,“Enter”鍵用來(lái)分隔數(shù)組中的行。1.4.2 最簡(jiǎn)單的計(jì)算器使用方法 【例1.4】指令的續(xù)行輸入 【說(shuō)明】 MATLAB用3個(gè)或3個(gè)以上的連續(xù)黑點(diǎn)表示“續(xù)行”,即下一行是上一行的繼續(xù)。1.4 MATLAB指令窗操作入門 1.4.3 數(shù)值、變量和表達(dá)式1.

14、 數(shù)值的記述 MATLAB的數(shù)值采用習(xí)慣的十進(jìn)制表示,可以帶小數(shù)點(diǎn)或負(fù)號(hào)。以下記述都合法 4 100 0.0001 6.789 8.7e6 1.8e56 在采用IEEE浮點(diǎn)算法的計(jì)算機(jī)上,數(shù)值通常采用“占用64位內(nèi)存的雙精度”表示。其相對(duì)精度是 eps (MATLAB的一個(gè)預(yù)定義變量),大約保持有效數(shù)字 16位。數(shù)值范圍大致從10-308 到10308 。 除了一般實(shí)數(shù)數(shù)據(jù)之外,MATLAB還支持復(fù)數(shù)數(shù)組和字符串型數(shù)組。1.4.3 數(shù)值、變量和表達(dá)式2. 變量命名規(guī)則 MATLAB 中變量名應(yīng)該由一個(gè)英文字母打頭,后面可以跟字母、數(shù)字、下劃線等,變量名最多不超過(guò)63個(gè)字符。 MATLAB中變量

15、名是區(qū)分大小的。 有些變量名不能用 。例如,sin(它是MATLAB中定義的正弦函數(shù)名 )。但SIN和Sin可以用。1.4.3 數(shù)值、變量和表達(dá)式3. 預(yù)定義變量 MATLAB中有一些所謂的“預(yù)定義變量”(Predefined Variable),如表1.1(p.8)所示。每當(dāng)MATLAB啟動(dòng)時(shí),這些變量就自動(dòng)產(chǎn)生并取表中的預(yù)定義值。這些變量都有特殊的含義和用途。如果用戶對(duì)表中任何一個(gè)預(yù)定義變量進(jìn)行賦值,則那個(gè)變量的默認(rèn)值將被用戶新賦的值“臨時(shí)”覆蓋,原始的特殊取值將會(huì)丟失。 習(xí)慣于其他程序設(shè)計(jì)語(yǔ)言編程的讀者最有可能將預(yù)定義變量 “i”和“j”作為循環(huán)變量使用,而破壞其默認(rèn)值。 建議:在編寫指

16、令和程序時(shí),盡量不對(duì)表1.1中所列預(yù)定義變量重新賦值,以免產(chǎn)生混淆。 1.4.3 數(shù)值、變量和表達(dá)式4. 運(yùn)算符和表達(dá)式 MATLAB中的算術(shù)運(yùn)算符和其他程序設(shè)計(jì)語(yǔ)言的表現(xiàn)形式相同。但由于MATLAB是面向矩陣/數(shù)組運(yùn)算設(shè)計(jì)的,標(biāo)量被看作(1 1)的矩陣/數(shù)組,“乘、除和冪”運(yùn)算的規(guī)則與一般矩陣運(yùn)算有所不同。除法運(yùn)算包括了“左除”和“右除”兩種運(yùn)算。具體說(shuō)明詳見(jiàn)第2章。1.4.3 數(shù)值、變量和表達(dá)式 MATALAB書寫表達(dá)式的規(guī)則與“手寫算式”幾乎完全相同,也與其他程序設(shè)計(jì)語(yǔ)言沒(méi)有多少差別。 表達(dá)式由變量名、運(yùn)算符和函數(shù)名組成。 表達(dá)式按常規(guī)的優(yōu)先級(jí)從左到右執(zhí)行運(yùn)算。 優(yōu)先級(jí)的基本規(guī)定是:指數(shù)

17、運(yùn)算級(jí)別最高,乘除運(yùn)算其 次,加減運(yùn)算級(jí)別最低。 括號(hào)可以改變運(yùn)算的次序。 書寫表達(dá)式時(shí),賦值符“=”和運(yùn)算符兩側(cè)允許有空格,以增加可讀性。1.4 MATLAB指令窗操作入門 1.4.4 工作空間與變量管理 對(duì)于如圖1.1所示的默認(rèn)窗口,直接點(diǎn)擊工作空間窗中的變量名就可以進(jìn)行相應(yīng)的操作。1.4.4 工作空間與變量管理 右擊【例1.2】結(jié)果圖中A的圖標(biāo),可以根據(jù)下拉菜單進(jìn)行相應(yīng)操作。1.4.4 工作空間與變量管理 還可以雙擊A的圖標(biāo),在彈出的窗口中對(duì)A的內(nèi)容進(jìn)行修改,也可以改變A的尺寸。 對(duì)于如圖1.3所示的幾何獨(dú)立的指令窗,則可以通過(guò)三個(gè)常用指令:who,whos和clear進(jìn)行。 在指令窗中

18、運(yùn)行who指令和whos指令,可以獲得有關(guān)工作空間中變量的相關(guān)信息;而運(yùn)行clear指令則可以刪除一些不再使用的變量,使整個(gè)工作空間更簡(jiǎn)潔。1.4.4 工作空間與變量管理 【例1.5】在指令窗中運(yùn)行指令who,whos和clear的示例。 1.4.4 工作空間與變量管理 【說(shuō)明】 可以把多條指令放在同一行上輸入,中間用逗號(hào)或分號(hào)分隔。如果采用了分號(hào),則不顯示該條指令的運(yùn)行結(jié)果。1.4.4 工作空間與變量管理 whos指令將列出全部變量的變量名(Name)、大小(Size)、字節(jié)數(shù)(Bytes)、變量類型(Class)。除了列出了各個(gè)變量的相關(guān)信息外,還給出了整個(gè)工作空間的占用情況。 MATLA

19、B將所有的變量都作為數(shù)組來(lái)看待。1.4.4 工作空間與變量管理 clear指令中,X1 和Y1之間不能加逗號(hào)或分號(hào),只能用空格分隔;否則該指令就會(huì)被錯(cuò)誤地解釋成刪除X1變量,然后運(yùn)行下一條指令(其內(nèi)容為Y1),而下一條指令將被解釋成將Y1變量的內(nèi)容顯示出來(lái),這樣Y1變量就不會(huì)被刪除。 1.4.4 工作空間與變量管理 應(yīng)當(dāng)特別注意:?jiǎn)为?dú)鍵入clear指令,將無(wú)條件刪除MATLAB工作空間中的全部變量!系統(tǒng)不會(huì)要求用戶確認(rèn)該指令,所有變量都被清除,并且不能恢復(fù)!1.4 MATLAB指令窗操作入門 1.4.5 指令窗的顯示方式與指令行的編輯 及標(biāo)點(diǎn)符號(hào) 1. 默認(rèn)的輸入顯示方式 從MATLAB7.0

20、版本開(kāi)始起規(guī)定:輸入指令中的if, for, end等控制數(shù)據(jù)流的MATLAB關(guān)鍵詞自動(dòng)地采用藍(lán)色字體顯示;輸入指令中的非控制指令、數(shù)碼,都自動(dòng)地采用黑色字體顯示;輸入的字符串自動(dòng)地采用紫色字體顯示。1.4.5 指令窗的顯示方式與指令行的編輯 及標(biāo)點(diǎn)符號(hào) 2. 運(yùn)算結(jié)果的顯示 在指令窗中顯示的輸出有:指令執(zhí)行后,數(shù)值結(jié)果采用黑色字體輸出;而運(yùn)行過(guò)程中的出錯(cuò)信息用紅色字體顯示。 1.4.5 指令窗的顯示方式與指令行的編輯 及標(biāo)點(diǎn)符號(hào) 系統(tǒng)用紅色的字體告知矩陣的維數(shù)不一致。1.4.5 指令窗的顯示方式與指令行的編輯 及標(biāo)點(diǎn)符號(hào) 結(jié)果的輸出一般默認(rèn)采用“format short g”格式,顯示出5位

21、有效數(shù)字。不要誤認(rèn)為,運(yùn)算結(jié)果的精度只有5位有效數(shù)字。MATLAB的數(shù)值數(shù)據(jù)通常占用64位(Bit)內(nèi)存,以16位有效數(shù)字的“雙精度”進(jìn)行運(yùn)算和輸出。 可以根據(jù)需要,在指令窗中直接輸入相應(yīng)的指令,獲得所需的數(shù)值計(jì)算結(jié)果顯示格式。表1.2 (p.10)給出了這些常用的數(shù)字顯示格式。 【例1.6】 在指令窗中運(yùn)行format指令的示例。1.4.5 指令窗的顯示方式與指令行的編輯 及標(biāo)點(diǎn)符號(hào) 【說(shuō)明】 在選擇不同的數(shù)字顯示格式時(shí),MATLAB并不改變數(shù)字的大小,只改變顯示格式。 一旦鍵入了上述某條format指令后,工作空間中的所有數(shù)據(jù)均采用同一格式顯示。并且,在下一次鍵入format指令前,所有數(shù)

22、據(jù)均按照本次format指令規(guī)定的格式顯示。1.4.5 指令窗的顯示方式與指令行的編輯 及標(biāo)點(diǎn)符號(hào) 3. 指令窗中指令行的編輯 由于MATLAB把指令窗中輸入的所有指令都記錄在內(nèi)存中專門的“歷史指令”(Command History)空間中,因此MATLAB的指令窗不僅可以對(duì)輸入執(zhí)行過(guò)的指令進(jìn)行編輯和運(yùn)行,而且可以對(duì)已輸入的指令進(jìn)行回調(diào)、編輯和重新運(yùn)行。常用的操作鍵如表1.3(p.11)所示。1.4.5 指令窗的顯示方式與指令行的編輯 及標(biāo)點(diǎn)符號(hào) 4. 指令窗中的標(biāo)點(diǎn)符號(hào) MATLAB中的標(biāo)點(diǎn)符號(hào)的作用如表1.4(p.12)所示。 需要特別提醒的是:在向指令窗中輸入指令時(shí),一定要在英文狀態(tài)下輸

23、入。 1.4 MATLAB指令窗操作入門 1.4.6 在線幫助 為了幫助用戶在繁多的MATLAB指令中找到所需的指令并且了解指令的使用方式,MATLAB提供了廣泛的在線幫助功能。最常用的功能是:help指令和lookfor指令。1. help指令 在指令窗中運(yùn)行help指令可以獲得不同程度的幫助?!纠?.7】 在指令窗中運(yùn)行help指令的示例。1.4.6 在線幫助(1)運(yùn)行help引出主題(Topics)分類列表 1.4.6 在線幫助(2)運(yùn)行help topic引出具體主題下的函數(shù)名(FunName)列表 1.4.6 在線幫助(3)運(yùn)行help FunName獲得具體函數(shù)的用法說(shuō)明 1.4.

24、6 在線幫助(4)運(yùn)行help help獲得如何使用help的信息 1.4.6 在線幫助2. lookfor指令 lookfor指令根據(jù)關(guān)鍵詞提供幫助?!纠?.8】 尋找所有求解riccati方程的指令和解釋語(yǔ)句。1.4.6 在線幫助第2章 數(shù)值數(shù)組及其運(yùn)算 MATLAB程序設(shè)計(jì)及應(yīng)用(第2版)2.1 數(shù)值數(shù)組的創(chuàng)建、標(biāo)識(shí)、 查詢和定位 出于數(shù)值運(yùn)算離散本質(zhì)的考慮,也出于“向量化”快速處理數(shù)據(jù)的需要,MATLAB總把數(shù)值數(shù)組看作是存儲(chǔ)和運(yùn)算的基本單元,標(biāo)量數(shù)據(jù)被看成是(11)的數(shù)組,而矩陣則是(mn)的數(shù)組。 第2章 數(shù)值數(shù)組及其運(yùn)算 這是最簡(jiǎn)單,也是最通用的創(chuàng)建方法?!纠?.1】【例1.4】

25、就是采用這種方法創(chuàng)建的。復(fù)數(shù)矩陣(即二維復(fù)數(shù)數(shù)組)的輸入也很簡(jiǎn)單。 2.1 數(shù)值數(shù)組的創(chuàng)建、標(biāo)識(shí)、 查詢和定位 2.1.1 數(shù)組的創(chuàng)建1. 逐個(gè)元素輸入法 2.1.1 數(shù)組的創(chuàng)建【例2.1】 產(chǎn)生復(fù)數(shù)數(shù)組 注意:虛數(shù)部分的幾種輸入表示方法,其中i和j的意義相同。 2.1.1 數(shù)組的創(chuàng)建 若將指令中“j*5”改成“j5”,系統(tǒng)會(huì)提示出錯(cuò),因?yàn)閖5 是一個(gè)未被定義或賦值的變量。 2.1.1 數(shù)組的創(chuàng)建 B數(shù)組創(chuàng)建后,可以用real,imag,abs,angle函數(shù)來(lái)求出其對(duì)應(yīng)的實(shí)部數(shù)組、虛部數(shù)組、幅值數(shù)組和相角數(shù)組(參見(jiàn)p.26表2.2)。左圖給出了求取對(duì)應(yīng)的虛部數(shù)組的函數(shù)指令和結(jié)果。 2.1.1

26、 數(shù)組的創(chuàng)建2. 冒號(hào)“:”生成法 MATLAB定義了獨(dú)特的冒號(hào)表達(dá)式來(lái)給一維“行”數(shù)組賦值,其通用格式為:x = a: inc: b其中,a是生成數(shù)組的第一個(gè)元素;inc是采樣點(diǎn)之間的間隔,即步距。如果(ba)是inc的整倍數(shù),則生成數(shù)組的最后一個(gè)元素等于b;否則不等于b。如果inc的值為正值,則要求ab,否則結(jié)果為一個(gè)“空”數(shù)組。如果省略了inc,則步距值默認(rèn)為1?!纠?.2】 以0為初值,0.2為步距,1.76為終值,產(chǎn)生一個(gè)“行”數(shù)組。 2.1.1 數(shù)組的創(chuàng)建 由于1.76不是0.2的整倍數(shù),所以產(chǎn)生的最后一個(gè)元素為1.6,而不是1.76。 2.1.1 數(shù)組的創(chuàng)建3. 定數(shù)線性采樣法(

27、linspace函數(shù)) 該法在設(shè)定“總點(diǎn)數(shù)”的前提下,均勻采樣產(chǎn)生一維“行”數(shù)組。該法的通用格式為: x = linspace (a,b,n)其中,a和b分別是生成數(shù)組的第一個(gè)和最后一個(gè)元素;n是采樣總點(diǎn)數(shù)。該指令的作用與指令x = a: (b-a)/(n-1) : b相同。 與前一種方法相比,在于b一定能夠被采到。【例2.3】 在指令窗中運(yùn)行l(wèi)inspace函數(shù)的示例。 2.1.1 數(shù)組的創(chuàng)建 2.1.1 數(shù)組的創(chuàng)建4. 定數(shù)對(duì)數(shù)采樣法(logspace函數(shù)) 該法在設(shè)定“總點(diǎn)數(shù)”的前提下,經(jīng)“常用對(duì)數(shù)”采樣產(chǎn)生一維“行”數(shù)組。在系統(tǒng)頻率分析中,常常用該指令產(chǎn)生頻率響應(yīng)的頻率自變量采樣點(diǎn)。該

28、法的通用格式為:x = logspace (a,b,n)其中,n是采樣總點(diǎn)數(shù);生成數(shù)組的第一個(gè)元素值為10a;最后一個(gè)元素值為10b。【例2.4】 在指令窗中運(yùn)行l(wèi)ogspace函數(shù)的示例。 2.1.1 數(shù)組的創(chuàng)建 2.1.1 數(shù)組的創(chuàng)建5. 中等規(guī)模數(shù)組的數(shù)組編輯器創(chuàng)建法 當(dāng)數(shù)組規(guī)模較大,元素?cái)?shù)據(jù)比較冗長(zhǎng)且雜亂無(wú)章時(shí),借助于數(shù)組編輯器(Array Editor)比較方便。 【例2.5】 根據(jù)現(xiàn)有數(shù)據(jù)創(chuàng)建一個(gè)(38)的數(shù)組。 2.1.1 數(shù)組的創(chuàng)建圖2.1圖2.2(1)單擊圖2.1所示的MATLAB默認(rèn)窗口上面菜單工具欄中的圖標(biāo) ,在工作空間窗中引出一個(gè)名為unnamed變量的數(shù)組編輯器,如圖

29、2.2所示。 2.1.1 數(shù)組的創(chuàng)建(2)在空白窗口中,按照“行、列”次序輸入數(shù)據(jù)。最后一個(gè)數(shù)據(jù)-9輸入結(jié)束后,按下【Enter】鍵,或在數(shù)組編輯器窗口內(nèi)單擊鼠標(biāo),使整個(gè)數(shù)組保存在unnamed變量中。 圖2.3 2.1.1 數(shù)組的創(chuàng)建(3)在數(shù)組編輯器窗口中,右鍵點(diǎn)中unnamed變量,利用彈出的菜單的Rename unnamed選項(xiàng),把變量名改成所需的名稱,比如ABC(此時(shí),在工作空間窗口中會(huì)出現(xiàn)該變量)?!菊f(shuō)明】 運(yùn)行上述指令后,在MATLAB的當(dāng)前目錄窗中可以找到一個(gè)名為ABC_DAT.mat的文件,其內(nèi)容即為ABC變量。該指令中的第一個(gè)字符串為保存變量的文件名,第二個(gè)字符串為被保存的

30、變量。如果以后要調(diào)用該變量,則在指令窗中鍵入 load ABC_DAT。 save指令和load指令在處理較大規(guī)模的數(shù)組和需要多次重復(fù)運(yùn)行或者需要經(jīng)過(guò)多步中間運(yùn)算才能得到最終結(jié)果的數(shù)組時(shí),有著極為重要的作用。 2.1.1 數(shù)組的創(chuàng)建(4)假如該變量要供以后調(diào)用,則在指令窗中鍵入 save ABC_DAT ABC 2.1.1 數(shù)組的創(chuàng)建6. 中等規(guī)模數(shù)組的M腳本文件創(chuàng)建法 對(duì)于今后經(jīng)常需要調(diào)用的數(shù)組,當(dāng)數(shù)組規(guī)模較大而復(fù)雜時(shí),為它專門建立一個(gè)M腳本文件是值得的?!纠?.6】創(chuàng)建和保存數(shù)組 AM的 MyMatrix.m 文件。 2.1.1 數(shù)組的創(chuàng)建(1)單擊MATLAB默認(rèn)窗口上面的圖標(biāo) ,打開(kāi)M

31、文件編輯調(diào)試器(Editor/Debugger) ,并在空白填寫框中輸入所需的數(shù)組。圖2.4 2.1.1 數(shù)組的創(chuàng)建(2)在空白填寫框中輸入所需數(shù)組,并在文件的首行,編寫文件名和簡(jiǎn)短說(shuō)明,以便查閱 。 圖2.4 2.1.1 數(shù)組的創(chuàng)建圖2.4(3)點(diǎn)擊M文件編輯調(diào)試器工具條上的Save圖標(biāo) ,在彈出的Windows標(biāo)準(zhǔn)風(fēng)格的對(duì)話框內(nèi),選擇保存文件夾,鍵入新編程序的文件名(如MyMatrix),點(diǎn)擊【保存(S)】鍵,就完成了文件的保存,并且文件起名為 MyMatrix.m 。 2.1.1 數(shù)組的創(chuàng)建(4)以后只要在MATLAB指令窗中,鍵入 MyMatrix ,數(shù)組 AM 就會(huì)自動(dòng)生成于 MAT

32、LAB工作空間中。 實(shí)際應(yīng)用中,往往需要產(chǎn)生一些特殊形式的數(shù)組。MATLAB考慮到這方面的需要,提供了許多生成特殊數(shù)組的函數(shù)。表2.1(p.19)列出了最常用的函數(shù)。 2.1.1 數(shù)組的創(chuàng)建7. 利用MATLAB函數(shù)創(chuàng)建數(shù)組 【例2.7】 標(biāo)準(zhǔn)數(shù)組產(chǎn)生的示例。運(yùn)行結(jié)果分三張圖顯示。 2.1.1 數(shù)組的創(chuàng)建 2.1.1 數(shù)組的創(chuàng)建 2.1.1 數(shù)組的創(chuàng)建2.1 數(shù)值數(shù)組的創(chuàng)建、標(biāo)識(shí)、 查詢和定位 2.1.2 數(shù)組的標(biāo)識(shí) 在MATLAB中,數(shù)組元素是按列存儲(chǔ)的。數(shù)組中的元素可以采用全下標(biāo)方式和單下標(biāo)方式進(jìn)行標(biāo)識(shí)。 全下標(biāo)方式就是在引述具體數(shù)組元素時(shí),用行下標(biāo)和列下標(biāo)表示數(shù)組元素的位置。如果數(shù)組元素

33、的下標(biāo)行或列(i,j)大于數(shù)組的大?。╩,n),MATLAB會(huì)提示出錯(cuò)。 2.1.2 數(shù)組的標(biāo)識(shí) 單下標(biāo)標(biāo)識(shí)就是只用一個(gè)下標(biāo)來(lái)指明元素在數(shù)組中的位置。為此,需要首先對(duì)數(shù)組的所有列按“先左后右”的次序、首尾相連接成“一維長(zhǎng)列”。然后,自上而下對(duì)元素位置進(jìn)行編號(hào)。以(mn)數(shù)組A為例,元素A(i,j)對(duì)應(yīng)的單下標(biāo)為 ?!纠?.8】 數(shù)組全下標(biāo)標(biāo)識(shí)和單下標(biāo)標(biāo)識(shí)的應(yīng)用示例。 2.1.2 數(shù)組的標(biāo)識(shí) 利用操作桌面中的工作空間瀏覽器,或者利用who指令和whos指令,可以對(duì)數(shù)組的大小進(jìn)行查詢。另外,還可以采用find指令進(jìn)行特殊要求的數(shù)組元素定位;也可以利用length指令和size指令分別求取向量和矩陣

34、維數(shù)。2.1 數(shù)值數(shù)組的創(chuàng)建、標(biāo)識(shí)、 查詢和定位 2.1.3 數(shù)組的標(biāo)識(shí) 【例2.9】 數(shù)組查詢及定位的相關(guān)指令的應(yīng)用示例。 2.1.3 數(shù)組的標(biāo)識(shí) 【說(shuō)明】find指令執(zhí)行的結(jié)果表明,在 A陣中,第1行的第4,5列元素和第2行的第4列元素滿足條件要求。 為什么會(huì)如此顯示結(jié)果?矩陣的存儲(chǔ)方式?jīng)Q定的。 2.1.3 數(shù)組的標(biāo)識(shí) 【說(shuō)明】 不管數(shù)組的維數(shù)是多少,size指令可以給出數(shù)組各維的大小。 length指令通常用來(lái)求取一維數(shù)組(即向量)的長(zhǎng)度,它可以給出數(shù)組所有維中的最大長(zhǎng)度。這就是說(shuō),length(A)等價(jià)于max (size (A)。 MATLAB中所有變量都被認(rèn)為是數(shù)組變量,因此MAT

35、LAB的數(shù)值計(jì)算遵循數(shù)組運(yùn)算的規(guī)則進(jìn)行。如果在計(jì)算過(guò)程中發(fā)生數(shù)組維數(shù)不相容的情況,MATLAB將自動(dòng)給出錯(cuò)誤信息提示。此外,MATLAB還提供了獨(dú)特的點(diǎn)“.”運(yùn)算,因而使用起來(lái)更加方便。 2.2 數(shù)組的運(yùn)算和操作 第2章 數(shù)值數(shù)組及其運(yùn)算 2.2 數(shù)組的運(yùn)算和操作 2.2.1 數(shù)組的代數(shù)運(yùn)算 1. 數(shù)組與標(biāo)量的運(yùn)算 數(shù)組與標(biāo)量的運(yùn)算包括、和乘方等運(yùn)算,其中、和的運(yùn)算完成數(shù)組中的每個(gè)元素對(duì)標(biāo)量的運(yùn)算。 【例2.10】 數(shù)組與標(biāo)量運(yùn)算的示例。 2.2.1 數(shù)組的代數(shù)運(yùn)算 2.2.1 數(shù)組的代數(shù)運(yùn)算 MATLAB用符號(hào)“”表示乘方。求數(shù)組乘方時(shí)要求數(shù)組為方陣(參見(jiàn)數(shù)組的乘法運(yùn)算)?!纠?.11】 矩

36、陣乘方運(yùn)算的示例。 【說(shuō)明】 B2 完成BB運(yùn)算。 B(-1) 實(shí)際上是求B的逆矩陣。 B(0.2) 實(shí)際上是求矩陣P , 使P5B。 2.2.1 數(shù)組的代數(shù)運(yùn)算 如果要完成數(shù)組中每個(gè)元素的乘方運(yùn)算,則需要用到點(diǎn)運(yùn)算(后面介紹)。2. 數(shù)組的轉(zhuǎn)置運(yùn)算 數(shù)組A的轉(zhuǎn)置用A表示。對(duì)于實(shí)數(shù)數(shù)組,即為轉(zhuǎn)置運(yùn)算;對(duì)于復(fù)數(shù)數(shù)組,則為共軛轉(zhuǎn)置運(yùn)算(即 Hermit轉(zhuǎn)置運(yùn)算)。另外,用A.表示A的非共軛轉(zhuǎn)置運(yùn)算。 2.2.1 數(shù)組的代數(shù)運(yùn)算 【例2.12】 矩陣轉(zhuǎn)置運(yùn)算的示例。 2.2.1 數(shù)組的代數(shù)運(yùn)算 實(shí)數(shù)數(shù)組的共軛和非共軛運(yùn)算結(jié)果相同。 2.2.1 數(shù)組的代數(shù)運(yùn)算 復(fù)數(shù)數(shù)組的共軛和非共軛運(yùn)算結(jié)果不同。 數(shù)

37、組A 和B的尺寸完全相同時(shí)(即皆為(mn)數(shù)組),可以進(jìn)行加減法運(yùn)算;如果A 和B的尺寸不相等, MATLAB將自動(dòng)給出錯(cuò)誤信息,提示兩個(gè)數(shù)組的尺寸不相等。【例2.13】 數(shù)組加減法運(yùn)算的示例。 2.2.1 數(shù)組的代數(shù)運(yùn)算 3. 數(shù)組加減法運(yùn)算 2.2.1 數(shù)組的代數(shù)運(yùn)算 A和B的尺寸不相吻合,系統(tǒng)提示出錯(cuò)。 B和C的尺寸相吻合,完成對(duì)應(yīng)位置的元素的算術(shù)運(yùn)算。4. 數(shù)組的乘法運(yùn)算 2.2.1 數(shù)組的代數(shù)運(yùn)算 兩個(gè)二維數(shù)組A和B的維數(shù)相容時(shí)(A的列數(shù)等于B的行數(shù)),可以進(jìn)行C =AB的運(yùn)算。【例2.14】 對(duì)【例2.13】中的A和B數(shù)組進(jìn)行乘法運(yùn)算。 2.2.1 數(shù)組的代數(shù)運(yùn)算 2.2.1 數(shù)組

38、的代數(shù)運(yùn)算 5. 數(shù)組的除法運(yùn)算 數(shù)組除法是MATLAB專門為二維數(shù)組(即矩陣)設(shè)計(jì)的一種運(yùn)算。矩陣的除法運(yùn)算包括左除“”和右除“/”兩種運(yùn)算。其中, 左除:AB=A-1B ,A為方陣(即求方程Ax=B的解); 右除:A/B=AB-1, B為方陣(即求方程xA=B的解)?!纠?.15】 矩陣除法運(yùn)算的示例。 如果改成A/B,會(huì)出現(xiàn)什么結(jié)果? 2.2.1 數(shù)組的代數(shù)運(yùn)算 6. 數(shù)組的點(diǎn)運(yùn)算 MATLAB中定義了一種特殊的運(yùn)算,即所謂的點(diǎn)運(yùn)算。兩個(gè)數(shù)組之間的點(diǎn)運(yùn)算是它們之間對(duì)應(yīng)元素的直接運(yùn)算。顯然,這兩個(gè)數(shù)組的尺寸應(yīng)該完全相同(即皆為(mn)數(shù)組)。另外,數(shù)組與標(biāo)量的運(yùn)算也可以看成是標(biāo)量常數(shù)對(duì)數(shù)組

39、的點(diǎn)運(yùn)算。 2.2.1 數(shù)組的代數(shù)運(yùn)算 【例2.16】 數(shù)組的點(diǎn)運(yùn)算示例。 要點(diǎn):“.”后必須立即緊跟運(yùn)算符才表示點(diǎn)運(yùn)算。 2.2.1 數(shù)組的代數(shù)運(yùn)算 【說(shuō)明】 C=A*B是普通矩陣乘積 運(yùn)算。 CC=aij*bij ;AA=aij2。 7. 數(shù)組的求冪運(yùn)算 2.2.1 數(shù)組的代數(shù)運(yùn)算 數(shù)組求冪運(yùn)算包括數(shù)組與常數(shù)和數(shù)組與數(shù)組的冪運(yùn)算,用點(diǎn)運(yùn)算的形式表示。 【例2.17】矩陣求冪運(yùn)算的示例。 2.2.1 數(shù)組的代數(shù)運(yùn)算 【說(shuō)明】 A1=aij3;A2=3aij 。 A2=3.A 中,第一個(gè)“.”表示小數(shù)點(diǎn)(底數(shù)為3.0),第二個(gè)“.”和“”配合表示A數(shù)組求冪的點(diǎn)運(yùn)算。 A3= aijbij。 2

40、.2 數(shù)組的運(yùn)算和操作 2.2.2 數(shù)組的塊操作 MATLAB提供了很多簡(jiǎn)便、智能的方式,可以對(duì)數(shù)組進(jìn)行元素更改、插入子塊、提取子塊、重排子塊、擴(kuò)充數(shù)組等操作。這里,最重要的是冒號(hào)“:”的應(yīng)用。在MATLAB中,冒號(hào)表示全部?!纠?.18】 數(shù)組塊操作的示例。 2.2.2 數(shù)組的塊操作 2.2.2 數(shù)組的塊操作 在MATLAB中,不需要定義數(shù)組即可使用,而且將一個(gè)已存在數(shù)組的尺寸進(jìn)行擴(kuò)展甚為容易。能否將一個(gè)已存在數(shù)組的尺寸縮???后面介紹。2.2 數(shù)組的運(yùn)算和操作 2.2.3 數(shù)組的翻轉(zhuǎn)操作 MATLAB提供了幾種指令(函數(shù)),可以進(jìn)行數(shù)組的翻轉(zhuǎn)操作?!纠?.19】 數(shù)組翻轉(zhuǎn)操作的示例。 2.2

41、.3 數(shù)組的翻轉(zhuǎn)操作 2.2.3 數(shù)組的翻轉(zhuǎn)操作 2.2 數(shù)組的運(yùn)算和操作 2.2.4 數(shù)組運(yùn)算的常用數(shù)學(xué)函數(shù) 對(duì)于(mn)數(shù)組 數(shù)學(xué)函數(shù) 的運(yùn)算規(guī)則為 2.2.4 數(shù)組運(yùn)算的常用數(shù)學(xué)函數(shù) 數(shù)組運(yùn)算的常用數(shù)學(xué)函數(shù)如表2.2(p.26)所示。 注意:表2.2中的數(shù)組函數(shù)的運(yùn)算都是點(diǎn)運(yùn)算。三角函數(shù)及其相關(guān)函數(shù)的輸入宗量的單位都是弧度?!纠?.20】 數(shù)組數(shù)學(xué)函數(shù)運(yùn)算的示例。 2.2.4 數(shù)組運(yùn)算的常用數(shù)學(xué)函數(shù) 【說(shuō)明】 C=exp(A)完成的是C=exp(aij)運(yùn)算;D=abs(B)完成的是D=abs(bij)運(yùn)算,不要求B陣為方陣。 這是MATLAB中特有的三個(gè)概念和“預(yù)定義變量”。 2.3

42、“無(wú)窮大”、“非數(shù)”和“空”數(shù)組 第2章 數(shù)值數(shù)組及其運(yùn)算 2.3 “無(wú)窮大”、“非數(shù)”和“空”數(shù)組 2.3.1 “無(wú)窮大” “無(wú)窮大” 表示“infinite”,是由一個(gè)非零數(shù)除以0得到的或者是在計(jì)算中出現(xiàn)的數(shù)值上溢產(chǎn)生的,在MATLAB中用Inf或inf記敘。MATLAB允許除數(shù)為0,并給出“Inf”作為本步計(jì)算結(jié)果,同時(shí)繼續(xù)下面程序的運(yùn)行?!纠?.21】 產(chǎn)生Inf的計(jì)算示例。 2.3.1 “無(wú)窮大” 2.3 “無(wú)窮大”、“非數(shù)”和“空”數(shù)組 2.3.2 “非數(shù)” “非數(shù)”表示“Not-a-Number”,在MATLAB中用NaN或nan記敘。按照IEEE的規(guī)定, 等運(yùn)算都會(huì)產(chǎn)生NaN。

43、 根據(jù)IEEE的數(shù)學(xué)規(guī)范,NaN具有以下性質(zhì): 對(duì)NaN的所有運(yùn)算結(jié)果都為NaN,即NaN具有傳遞性; NaN沒(méi)有“大小”的概念,因此不能比較兩個(gè)NaN的大小。 2.3.2 “非數(shù)” NaN的功效:真實(shí)記述 等運(yùn)算的后果;避免因 等運(yùn)算而造成程序執(zhí)行的中斷; 在測(cè)量數(shù)據(jù)處理中,可以用來(lái)標(biāo)識(shí)“野點(diǎn)(非正常點(diǎn))”; 在數(shù)據(jù)可視化中,用來(lái)裁剪圖形?!纠?.22】 NaN的產(chǎn)生和性質(zhì)演示。 2.3.2 “非數(shù)” 2.3.2 “非數(shù)” 2.3.2 “非數(shù)” 【說(shuō)明】 關(guān)于關(guān)系運(yùn)算見(jiàn)5.3.1節(jié)。 2.3 “無(wú)窮大”、“非數(shù)”和“空”數(shù)組 2.3.3 “空” 數(shù)組 “空”數(shù)組用符號(hào) 表示,它不是元素取值為

44、0的數(shù)組,而是一個(gè)行數(shù)或列數(shù)為0或者行列數(shù)均為0的數(shù)組。換句話說(shuō), 是一個(gè)標(biāo)志,表示邏輯上的“無(wú)”或“不存在”。 的功效: 在沒(méi)有 參與運(yùn)算時(shí),計(jì)算結(jié)果中的“ ”可以合理地解釋 “所得結(jié)果的含義”; 運(yùn)用 對(duì)其他非空數(shù)組賦值,可以使數(shù)組的尺寸變小,但不改變那數(shù)組的維數(shù)。 2.3.3 “空” 數(shù)組【例2.23】 的產(chǎn)生、查詢及應(yīng)用。【說(shuō)明】 因?yàn)閿?shù)組x 中的所有元素都小于7,y=find(x7)執(zhí)行的結(jié)果是沒(méi)有找到大于7的值,所以返回一個(gè)10的“空”數(shù)組。 指令size() 執(zhí)行的結(jié)果說(shuō)明(00)的“空”數(shù)組是存在的。 2.3.3 “空” 數(shù)組 用于子數(shù)組的刪除和大數(shù)組的收縮。 指令clear

45、A和A(:)= 的執(zhí)行結(jié)果有何不同?MATLAB程序設(shè)計(jì)及應(yīng)用第3章 字符串、元胞和結(jié)構(gòu)數(shù)組 3.1 字符串?dāng)?shù)組 MATLAB可以給一串文字進(jìn)行定義并執(zhí)行一些字符串的處理與運(yùn)算。與數(shù)值計(jì)算相比,字符串運(yùn)算在MATLAB中的重要性較小,并且提供的函數(shù)和操作也較少。但是,如果沒(méi)有字符串以及相應(yīng)的操作,數(shù)據(jù)的可視化操作將發(fā)生困難。 第3章 字符串、元胞和結(jié)構(gòu)數(shù)組 字符串與數(shù)值是兩種不同的數(shù)據(jù)類(Class),因此它們的創(chuàng)建方式也就不同。 數(shù)值數(shù)組通常是在MATLAB指令窗中采用數(shù)字賦值方式直接創(chuàng)建的。字符串?dāng)?shù)組(Character String Array)的創(chuàng)建方式是:在MATLAB指令窗中,先把

46、待創(chuàng)建的字符串放在單引號(hào)對(duì)“”中,再按下【Enter】鍵。 注意:?jiǎn)我?hào)對(duì)必須在英文狀態(tài)下輸入。單引號(hào)對(duì)是MATLAB識(shí)別輸入內(nèi)容“身份”(是變量名、數(shù)字,還是字符串)所必須的。 字符串創(chuàng)建后,可以用who,whos,size等指令或函數(shù)對(duì)它進(jìn)行屬性判別、元素標(biāo)識(shí)等操作。 3.1 字符串?dāng)?shù)組3.1.1 字符串的創(chuàng)建、屬性和標(biāo)識(shí)【例3.1】 數(shù)值量與字符串區(qū)別的示例。3.1.1 字符串的創(chuàng)建、屬性和標(biāo)識(shí)【說(shuō)明】 class函數(shù)用于對(duì)變量的類別進(jìn)行判別。3.1.1 字符串的創(chuàng)建、屬性和標(biāo)識(shí) a和b屬于不同種類的數(shù)據(jù),內(nèi)存中所占字節(jié)不相同。3.1.1 字符串的創(chuàng)建、屬性和標(biāo)識(shí)【例3.2】 字符串的基

47、本屬性、元素的標(biāo)識(shí)和簡(jiǎn)單操作的示例。(1)創(chuàng)建字符串3.1.1 字符串的創(chuàng)建、屬性和標(biāo)識(shí)(2)字符串的大小x是一個(gè)字符串。該字符串內(nèi)的每個(gè)字符(英文字母、空格和標(biāo)點(diǎn)符號(hào)都被視為是平等的)均占據(jù)一個(gè)元素位。字符串的大小用size指令獲得。x是一個(gè)字符串向量3.1.1 字符串的創(chuàng)建、屬性和標(biāo)識(shí)(3)字符串的元素標(biāo)識(shí) x是一個(gè)字符串向量。MATLAB按從左到右的次序用自然數(shù)數(shù)碼(1,2,3等)標(biāo)識(shí)其中字符的位置?!菊f(shuō)明】 x(1:6)是從字符串x中提出一個(gè)子字符串。 x(end:-1:1)是將字符串x倒排。3.1.1 字符串的創(chuàng)建、屬性和標(biāo)識(shí)(4)字符串的ASCII碼 字符串的存儲(chǔ)是用ASCII碼實(shí)

48、現(xiàn)的。指令abs和double都可以用來(lái)獲取字符串所對(duì)應(yīng)的ASCII碼數(shù)值數(shù)組,而指令char則可以把ASCII碼數(shù)值數(shù)組轉(zhuǎn)變?yōu)樽址??!菊f(shuō)明】 在指令char把數(shù)值轉(zhuǎn)換成字符時(shí),非整數(shù)部分將被截尾,而負(fù)數(shù)將導(dǎo)致出現(xiàn)“警告”信息。 中文字符可以轉(zhuǎn)換。3.1.1 字符串的創(chuàng)建、屬性和標(biāo)識(shí)(5)對(duì)字符串ASCII碼數(shù)組的操作由于ASCII碼數(shù)組是數(shù)值數(shù)組,所以有關(guān)數(shù)組的各種運(yùn)算、函數(shù)以及操作對(duì)ASCII碼數(shù)組都是適用的。 【說(shuō)明】 指令xxx=find(x=a&x cellplot(A)所得結(jié)果如圖3.1所示。圖 元胞數(shù)組的創(chuàng)建和顯示3.2 元胞數(shù)組3.2.2 元胞數(shù)組的擴(kuò)充和收縮

49、 元胞數(shù)組的擴(kuò)充和收縮的方法大致與數(shù)值數(shù)組的情況相同。 【例3. 11】在【例3.8】的基礎(chǔ)上擴(kuò)充和收縮元胞數(shù)組。【例3.8】的運(yùn)行結(jié)果3.2.2 元胞數(shù)組的擴(kuò)充和收縮 (1)元胞數(shù)組的“列”擴(kuò)充和“行”擴(kuò)充 3.2.2 元胞數(shù)組的擴(kuò)充和收縮 (2)元胞數(shù)組的收縮 3.2 元胞數(shù)組3.2.3 元胞數(shù)組的內(nèi)容獲取 在創(chuàng)建了元胞數(shù)組后,可以使用其中的元素進(jìn)行各種MATLAB的操作和運(yùn)算,前面介紹過(guò)可以對(duì)元胞數(shù)組的內(nèi)容進(jìn)行尋訪。【例3. 12】在【例3.6】的基礎(chǔ)上獲取元胞數(shù)組的元素內(nèi)容。【例3.6】的運(yùn)行結(jié)果3.2.3 元胞數(shù)組的內(nèi)容獲?。?)取出某個(gè)元胞元素的內(nèi)容 【說(shuō)明】 X1是數(shù)組,X2 是

50、標(biāo)量。3.2.3 元胞數(shù)組的內(nèi)容獲?。?)獲取元胞數(shù)組的元素 【說(shuō)明】 X3是元胞數(shù)組。3.2.3 元胞數(shù)組的內(nèi)容獲取(3)使用deal函數(shù)獲取多個(gè)元胞元素的內(nèi)容 3.3 結(jié)構(gòu)數(shù)組 與元胞數(shù)組相比,結(jié)構(gòu)數(shù)組(Structure Array)的內(nèi)容更加豐富,應(yīng)用更加廣泛。結(jié)構(gòu)數(shù)組的基本組成是結(jié)構(gòu)(Structure),每一個(gè)結(jié)構(gòu)都包含了多個(gè)域(Fields),每個(gè)域都可以存放各種類型的數(shù)據(jù)。結(jié)構(gòu)數(shù)組只有劃分了域以后才能使用。例如,有一個(gè)結(jié)構(gòu)數(shù)組,其第1個(gè)域?yàn)橛米址硎镜男彰?個(gè)域?yàn)橛脴?biāo)量表示的醫(yī)療費(fèi)用,第3個(gè)域?yàn)橛脭?shù)值數(shù)組表示的測(cè)試結(jié)果,這樣的一個(gè)結(jié)構(gòu)數(shù)組可以用來(lái)表示患者的病情。 與數(shù)值數(shù)

51、組一樣,結(jié)構(gòu)數(shù)組可以是一維、二維或者更高維。結(jié)構(gòu)數(shù)組的標(biāo)識(shí)方式也與數(shù)值數(shù)組相同,分為全下標(biāo)方式和單下標(biāo)方式。第3章 字符串、元胞和結(jié)構(gòu)數(shù)組 3.3 結(jié)構(gòu)數(shù)組3.3.1 結(jié)構(gòu)數(shù)組的創(chuàng)建1. 直接使用賦值指令創(chuàng)建 使用賦值指令可以對(duì)結(jié)構(gòu)數(shù)組的各個(gè)域進(jìn)行賦值。注意:結(jié)構(gòu)名與域名之間用“.”分隔。 【例3.13】直接使用賦值指令創(chuàng)建結(jié)構(gòu)數(shù)組的示例。 3.3.1 結(jié)構(gòu)數(shù)組的創(chuàng)建【說(shuō)明】 PS是結(jié)構(gòu)數(shù)組,PS(1)和PS(2)是結(jié)構(gòu),name,billing和test是域。 在MATLAB的工作空間中,結(jié)構(gòu)數(shù)組的圖標(biāo)為 。 在本步的賦值指令后,PS的內(nèi)容被顯示。為什么?注意與下面的區(qū)別。3.3.1 結(jié)構(gòu)數(shù)

52、組的創(chuàng)建 MATLAB規(guī)定:當(dāng)結(jié)構(gòu)中包含兩個(gè)以上的結(jié)構(gòu)元素時(shí),不再顯示各個(gè)元素的內(nèi)容,而顯示數(shù)組的結(jié)構(gòu)信息;當(dāng)結(jié)構(gòu)僅包含一個(gè)結(jié)構(gòu)元素時(shí),則顯示出各個(gè)元素的內(nèi)容。 【例3.14】利用struct函數(shù)創(chuàng)建結(jié)構(gòu)數(shù)組的示例。 3.3.1 結(jié)構(gòu)數(shù)組的創(chuàng)建2. 利用struct函數(shù)創(chuàng)建 分步顯示結(jié)果與前例完全相同。3.3 結(jié)構(gòu)數(shù)組3.3.2 結(jié)構(gòu)數(shù)組的獲取和設(shè)置 1. 使用“.”符號(hào)獲取結(jié)構(gòu)數(shù)組的數(shù)據(jù) 【例3.15】在【例3.14】的基礎(chǔ)上獲取結(jié)構(gòu)數(shù)組的元素內(nèi)容。 3.3.2 結(jié)構(gòu)數(shù)組的獲取和設(shè)置 【說(shuō)明】 Y1是一個(gè)結(jié)構(gòu)(從結(jié)構(gòu)數(shù)組PS中取出),Y2是數(shù)組,Y3是標(biāo)量。 本例表明,在希望獲取某個(gè)結(jié)構(gòu)數(shù)組

53、中的某個(gè)具體數(shù)據(jù)時(shí),需要知道該數(shù)據(jù)所在的結(jié)構(gòu)元素以及相應(yīng)的域和具體的數(shù)組位置。 “.”符號(hào)用于指明結(jié)構(gòu)數(shù)組的域。3.3.2 結(jié)構(gòu)數(shù)組的獲取和設(shè)置 2. 利用getfield函數(shù)獲取結(jié)構(gòu)數(shù)組的數(shù)據(jù) 【例3.16】在【例3.15】的基礎(chǔ)上利用getfield函數(shù)獲取結(jié)構(gòu)數(shù)組的元素內(nèi)容。 getfield函數(shù)的調(diào)用格式為: getfield(array,array_index,field,field_index)【說(shuō)明】 array是結(jié)構(gòu)數(shù)組名,array_index是結(jié)構(gòu)的下標(biāo),field是域名,field_index是域中數(shù)組元素的下標(biāo)。3.3.2 結(jié)構(gòu)數(shù)組的獲取和設(shè)置 本例表明, getfie

54、ld函數(shù)中的某些項(xiàng)是可以缺省的。3.3.2 結(jié)構(gòu)數(shù)組的獲取和設(shè)置 3. 利用setfield函數(shù)設(shè)置結(jié)構(gòu)數(shù)組的數(shù)據(jù) setfield函數(shù)的調(diào)用格式為: new_structure=setfield(array,array_index,field,field_index,V)【說(shuō)明】 new_structure是要修改的結(jié)構(gòu)數(shù)組名,V是設(shè)置的值。 【例3.17】在【例3.16】的基礎(chǔ)上利用setfield函數(shù)設(shè)置結(jié)構(gòu)數(shù)組的元素內(nèi)容。 3.3.2 結(jié)構(gòu)數(shù)組的獲取和設(shè)置 可否將賦值指令改為: PS(1).name=王二;?3.3.2 結(jié)構(gòu)數(shù)組的獲取和設(shè)置 4. 利用fieldnames函數(shù)獲取結(jié)構(gòu)數(shù)

55、組的所有域 【例3.18】在【例3.17】的基礎(chǔ)上利用fieldnames函數(shù)獲取結(jié)構(gòu)數(shù)組的所有域。 【說(shuō)明】 Y6是元胞數(shù)組,各變量在工作空間的數(shù)據(jù)類型如圖3.2所示(見(jiàn)下頁(yè))。 3.3.2 結(jié)構(gòu)數(shù)組的獲取和設(shè)置 圖3.2 3.3 結(jié)構(gòu)數(shù)組3.3.3 結(jié)構(gòu)數(shù)組的擴(kuò)充和收縮 1. 結(jié)構(gòu)數(shù)組的擴(kuò)充和收縮 【例3.19】在【例3.18】的基礎(chǔ)上演示結(jié)構(gòu)數(shù)組 PS的擴(kuò)充和收縮。 3.3.3 結(jié)構(gòu)數(shù)組的擴(kuò)充和收縮 結(jié)構(gòu)數(shù)組的擴(kuò)充方法與數(shù)值數(shù)組的一致。只不過(guò)未定義的元素為 。參見(jiàn)【例2.18】。 3.3.3 結(jié)構(gòu)數(shù)組的擴(kuò)充和收縮 結(jié)構(gòu)數(shù)組的收縮和保留部分的內(nèi)容。3.3.3 結(jié)構(gòu)數(shù)組的擴(kuò)充和收縮 2. 增

56、添域和刪除域 增添結(jié)構(gòu)數(shù)組域的最常用方法是向域直接賦值,而域的刪除就必須依靠rmfield函數(shù)才能完成?!纠?.20】在【例3.19】的基礎(chǔ)上對(duì)結(jié)構(gòu)數(shù)組PS進(jìn)行域的增添和刪除。3.3.3 結(jié)構(gòu)數(shù)組的擴(kuò)充和收縮 (1)增添域:在數(shù)組中任何一個(gè)結(jié)構(gòu)上進(jìn)行域的增添,其影響遍及整個(gè)結(jié)構(gòu)數(shù)組 雖然,僅僅對(duì)第一個(gè)結(jié)構(gòu)增加了域“diagnosis”,但PS的第二個(gè)結(jié)構(gòu)也有了四個(gè)域。PS(2). diagnosis=?3.3.3 結(jié)構(gòu)數(shù)組的擴(kuò)充和收縮 (2)刪除域的操作也是對(duì)整個(gè)結(jié)構(gòu)數(shù)組實(shí)施的 MATLAB程序設(shè)計(jì)及應(yīng)用第4章 數(shù)據(jù)和函數(shù)的可視化 除了具有強(qiáng)大的數(shù)值計(jì)算功能外,MATLAB為廣大工程技術(shù)人員接

57、受和青睞的另一個(gè)重要原因是它提供了極其方便的繪圖功能,可以繪制多種類型的二維、三維圖形,也可以進(jìn)行動(dòng)畫演示。本書主要介紹二維圖形的繪制指令。 在二維圖形繪制指令中,最重要也是最基本的指令是plot指令。其它許多特殊繪圖指令都是以它為基礎(chǔ)而形成的,調(diào)用格式也與其大同小異。因此,本章圍繞plot指令展開(kāi)。第4章 數(shù)據(jù)和函數(shù)的可視化4.1 二維曲線繪制的基本指令plot 第4章 數(shù)據(jù)和函數(shù)的可視化4.1.1 基本調(diào)用格式plot(x,y,s) 這是plot指令的最典型、最基本的調(diào)用格式。該指令打開(kāi)一個(gè)默認(rèn)的圖形窗,將各個(gè)采樣數(shù)據(jù)點(diǎn)用直線連接來(lái)繪制圖形,它還自動(dòng)將數(shù)值標(biāo)尺和單位注加到兩個(gè)坐標(biāo)軸上。如果

58、已經(jīng)存在一個(gè)圖形窗,plot指令將刷新當(dāng)前窗中的圖形。該指令的輸入宗量(x,y,s)稱為平面繪線的三元組。它們分別指定平面曲線的幾何位置、線型、點(diǎn)形和色彩。 【說(shuō)明】 x,y是長(zhǎng)度相同的一維數(shù)組,分別用來(lái)指定采樣點(diǎn)的橫坐標(biāo)和縱坐標(biāo)。 第3個(gè)輸入宗量s是字符串,用來(lái)指定“連續(xù)線型”或/和“離散點(diǎn)形以及點(diǎn)線色彩”(見(jiàn)p.45表4.1、表4.2和表4.3)。例如,plot(x,y, r : o)指令的字符串r : o中, “r”表示曲線的色彩為“紅色”; “:”表示曲線的線型采用“虛線”;“o” 表示曲線上給定的離散數(shù)據(jù)點(diǎn)用“圓圈”標(biāo)記出。 第3個(gè)輸入宗量s可以缺省,也可以缺省其中的某些字符,此時(shí)p

59、lot指令將使用默認(rèn)設(shè)置繪制曲線:若缺省線型控制字符,則曲線一律用“細(xì)實(shí)線”線型;若缺省數(shù)據(jù)點(diǎn)標(biāo)記字符,則不標(biāo)記給定的離散數(shù)據(jù)點(diǎn);若同時(shí)缺省色彩控制字符和線型控制字符,則只按照數(shù)據(jù)點(diǎn)標(biāo)記控制字符畫出給定的離散數(shù)據(jù)點(diǎn),而不將它們連接成線;若指令中沒(méi)有第三輸入宗量,即s不加指定,則采用“藍(lán)色細(xì)實(shí)線”繪制曲線。4.1.1 基本調(diào)用格式plot(x,y,s) 4.1 二維曲線繪制的基本指令plot 4.1.2 plot 指令的衍生調(diào)用格式 1. 單色或多色繪制多條曲線 plot(X,Y,s) 用s指定的點(diǎn)形線型色彩繪制多條曲線plot(X,Y) 采用默認(rèn)的色彩次序用細(xì)實(shí)線繪制多條曲線 【說(shuō)明】 當(dāng)X,

60、Y均為(mn)數(shù)組時(shí),將繪制出n條曲線。每條曲線的幾何位置由X,Y對(duì)應(yīng)的列確定。 當(dāng)X,Y兩個(gè)輸入宗量中有一個(gè)是一維數(shù)組,且該數(shù)組的長(zhǎng)度與另一個(gè)輸入宗量的“行數(shù)”(或“列數(shù)”)相等時(shí),將繪制出“列數(shù)”(或“行數(shù)”)條曲線。 plot(X,Y,s) 只能用s指定的點(diǎn)形線型色彩繪制多條曲線。 plot(X,Y) 指令采用細(xì)實(shí)線繪制曲線,并按照籃、綠、紅、青、紫紅、黃、黑的次序著色,以提高“觀察性”。4.1.2 plot 指令的衍生調(diào)用格式 4.1.2 plot 指令的衍生調(diào)用格式 2. 多三元組繪制多條曲線 plot(X1,Y1,s1,X2,Y2,s2,Xn,Yn,sn) 【說(shuō)明】 該調(diào)用格式的輸

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論