《MATLAB基礎教程(第6版)微課版》全套教學課件_第1頁
《MATLAB基礎教程(第6版)微課版》全套教學課件_第2頁
《MATLAB基礎教程(第6版)微課版》全套教學課件_第3頁
《MATLAB基礎教程(第6版)微課版》全套教學課件_第4頁
《MATLAB基礎教程(第6版)微課版》全套教學課件_第5頁
已閱讀5頁,還剩245頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2024年10月6日第1頁第1章MATLABR2023b簡介教學目標教學內容全套可編輯PPT課件2024年10月6日第2頁教學目標了解MATLAB語言的基本功能和特點了解MATLAB的基本界面了解MATLAB的路徑搜索2024年10月6日第3頁教學內容MATLAB簡介MATLABR2023b用戶界面MATLABR2023b的路徑搜索2024年10月6日第4頁MATLAB概述(1/3)MATLAB作為一種高級科學計算軟件,是進行算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的交互式應用開發(fā)環(huán)境。世界上許多科研工作者都在使用MATLAB產品來加快他們的科研進程,縮短數(shù)據(jù)分析和算法開發(fā)的時間,研發(fā)出更加先進的產品和技術。相對于傳統(tǒng)的C、C++或者Fortran語言,MATLAB提供了高效快速解決各種科學計算問題的方法。目前,MATLAB產品已經被廣泛認可為科學計算領域內的標準軟件之一。2024年10月6日第5頁MATLAB概述(2/3)MATLAB可以被廣泛地應用于不同領域,如信號與圖像處理、控制系統(tǒng)設計與仿真、通信系統(tǒng)設計與仿真、測量測試與數(shù)據(jù)采集、金融數(shù)理分析以及生物科學等。在MATLAB中內嵌了豐富的數(shù)學、統(tǒng)計和工程計算函數(shù),使用這些函數(shù)進行問題的分析解答,無論是問題的提出還是結果的表達都采用工程師習慣的數(shù)學描述方法,這一特點使MATLAB成為了數(shù)學分析、算法開發(fā)及應用程序開發(fā)的良好環(huán)境。MATLAB是MathWorks產品家族中所有產品的基礎。附加的工具箱擴展MATLAB基本環(huán)境用于解決特定領域的工程問題。2024年10月6日第6頁MATLAB概述(3/3)MATLAB有以下幾個特點。高級科學計算語言。代碼、數(shù)據(jù)文件的集成管理環(huán)境。算法設計開發(fā)的交互式工具。用于線性代數(shù)、統(tǒng)計、傅立葉分析、濾波器設計、優(yōu)化和數(shù)值計算的基本數(shù)學函數(shù)。2-D和3-D數(shù)據(jù)可視化。創(chuàng)建自定義工程師圖形界面的工具。與第三方算法開發(fā)工具——C/C++、FORTRAN、Java、COM、MicrosoftExcel——集成開發(fā)基于MATLAB的算法。2024年10月6日第7頁MATLAB的基本功能(1/2)MATLAB將高性能的數(shù)值計算和可視化功能集成,并提供了大量的內置函數(shù),從而被廣泛地應用于科學計算、控制系統(tǒng)和信息處理等領域的分析、仿真和設計工作,而且利用MATLAB產品的開放式結構,可以很容易地對MATLAB的功能進行擴充,從而在不斷深化對問題認識的同時,不斷完善MATLAB產品以提高產品自身的競爭能力。2024年10月6日第8頁MATLAB的基本功能(2/2)

數(shù)學計算功能圖形化顯示功能M語言編程功能編譯功能圖形用戶界面開發(fā)功能

Simulink建模仿真功能自動代碼生成功能2024年10月6日第9頁MATLAB的更新(1/1)MATLAB處于不斷的發(fā)展中,MathWorks公司每年會定期發(fā)布MATLAB的新版本。MATLABR2023b更新了多個產品模塊,添加了新的特性,包括MATLAB、Simulink和Polyspace產品的新功能,以及對其他產品的更新和補丁修復。新版R2023b相較于之前的版本,增加了一些新的功能和改進,如增加了自動化的功能向量化、并行計算、機器學習、信號處理等方面的新算法;改進了圖形界面和性能;同時還加強了與其他編程語言的集成,如Python、Java等,方便用戶進行跨語言開發(fā)。2024年10月6日第10頁啟動MATLABR2023b(1/1)選擇“開始”|“所有程序”|MATLAB|R2023b|MATLABR2023b命令,或者直接雙擊桌面上的MATLAB圖標,啟動MATLABR2023b。2024年10月6日第11頁MATLABR2023b的主界面(1/1)當前目錄窗口快捷按鈕編輯器窗口搜索欄帶狀工具欄當前目錄路徑文件詳細信息窗口工作區(qū)窗口命令提示符命令窗口2024年10月6日第12頁MATLABR2023b的帶狀工具欄(1/3)2024年10月6日第13頁MATLABR2023b的帶狀工具欄(2/3)2024年10月6日第14頁MATLABR2023b的帶狀工具欄(3/3)2024年10月6日第15頁MATLABR2023b的窗口命令窗口命令歷史記錄窗口工作區(qū)窗口當前目錄窗口2024年10月6日第16頁MATLAB的當前路徑查看MATLAB當前路徑的方式有兩種:查看工具欄中的當前路徑欄,或者在命令窗口中輸入查看命令。>>cdD:\ProgramFiles\MATLAB\R2023b\bin用戶可以通過工具欄中的當前路徑工具改變當前路徑。2024年10月6日第17頁MATLAB的路徑搜索(1/2)路徑設置選擇MATLAB窗口中的“主頁”|“環(huán)境”|“設置路徑”命令,打開“設置路徑”窗口。用戶可以單擊“添加文件夾”或者“添加并包含子文件夾”按鈕添加選中目錄或者添加選中目錄及其子目錄。單擊后,打開瀏覽文件夾對話框,選擇待添加的路徑。在命令窗口中輸入path命令可以查看MATLAB中的搜索路徑,>>path MATLABPATHD:\Documents\MATLABD:\ProgramFiles\MATLAB\R2023b\toolbox\matlab\addon_enable_disable_management\matlab:\Programiles\MATLAB\R2023b\toolbox\matlab\addon_enable_disable_management\matlabD:\ProgramFiles\MATLAB\R2023b\toolbox\matlab\addon_updates\matlabD:\ProgramFiles\MATLAB\R2023b\toolbox\matlab\addons… 2024年10月6日第18頁MATLAB的路徑搜索(2/2)MATLAB的搜索順序以元素foo為例:1)查找工作區(qū)中是否存在名為foo的變量;2)在當前路徑中查找是否存在名foo.m的文件;3)按照順序查找搜索路徑中是否存在該文件。如果存在多個名為foo.m的文件,則調用首先查到的文件。2024年10月6日第19頁第2章MATLAB的基本使用方法

教學目標教學內容2024年10月6日第20頁教學目標

掌握利用MATLABR2023b的命令窗口進行簡單的數(shù)學運算掌握常用的操作命令和快捷鍵了解MATLABR2023b的數(shù)據(jù)類型了解MATLABR2023b的操作符了解MATLABR2023b的基本數(shù)學函數(shù)了解MATLABR2023b腳本編程2024年10月6日第21頁教學內容簡單的數(shù)學運算常用的操作命令和快捷鍵MATLABR2023b的數(shù)據(jù)類型MATLABR2023b的運算符MATLAB的一些基礎函數(shù)MATLAB腳本文件2024年10月6日第22頁簡單的數(shù)學運算(1/5)最簡單的計算器使用法直接輸入法存儲變量法在大多數(shù)情況下,MATLAB對空格不予處理,因此在書寫表達式時,可以利用空格調整表達式的格式,使表達式更易于閱讀。在MATLAB表達式中,遵守四則運算法則,與通常法則相同。即運算從左到右進行,乘法和除法優(yōu)先于加減法,指數(shù)運算優(yōu)先于乘除法,括號的運算級別最高;在有多重括號存在的情況下,從括號的最里邊向最外邊逐漸擴展。需要注意的是,在MATLAB中只用小括號代表運算級別,中括號只用于生成向量和矩陣,花括號用于生成單元數(shù)組。2024年10月6日第23頁簡單的數(shù)學運算(2/5)MATLAB中的常用數(shù)學函數(shù)

MATLAB提供的基本初等函數(shù)包括三角函數(shù)、指數(shù)函數(shù)和對數(shù)函數(shù)、復數(shù)函數(shù)、取整和求余函數(shù)、坐標變換函數(shù)、數(shù)理函數(shù)和一些特殊函數(shù)。2024年10月6日第24頁簡單的數(shù)學運算(3/5)MATLAB的數(shù)學運算符需要注意的是,右除和左除的意義并不相同。右除為常規(guī)的除法,而左除的意義為:a\b=b/a。2024年10月6日第25頁簡單的數(shù)學運算(4/5)

標點符號的使用在MATLAB中,標點符號有著充分的意義,可以用標點符號進行運算,或者標點符號可以包含特定的意義。2024年10月6日第26頁簡單的數(shù)學運算(5/5)分號(;)分號用于區(qū)分數(shù)組的行,或者用于一個語句的結尾處,取消運行顯示。百分號(%)該符號用于在程序文本中添加注釋,增加程序的可讀性。百分號之后的文本都將視作注釋,系統(tǒng)不對其進行編譯。2024年10月6日第27頁常用的操作命令和快捷鍵(1/3)為方便用戶操作,MATLAB中定義了一些快捷鍵。掌握一些常用的操作命令和快捷鍵,可以使得對MATLAB的操作更加便利。2024年10月6日第28頁常用的操作命令和快捷鍵(3/3)快捷鍵功能快捷鍵功能↑(Ctrl+p)調用上一行Home(ctrl+a)移動到命令行開頭↓(Ctrl+n)調用下一行End(ctrl+e)移動到命令行結尾←(Ctrl+b)光標左移一個字符Ctrl+Home移動到命令窗口頂部→(Ctrl+f)光標右移一個字符Ctrl+End移動到命令窗口底部Ctrl+←光標左移一個單詞Shift+Home選中光標和表達式開頭之間的內容Ctrl+→光標右移一個單詞Shift+End選中光標和表達式結尾之間的內容Esc取消當前輸入行Ctrl+k剪切光標和表達式結尾之間的內容2024年10月6日第29頁常用的操作命令和快捷鍵(2/3)命令功能命令功能cd顯示或改變工作目錄hold圖形保持命令clc清空命令窗口load加載指定文件中的變量clear清除工作區(qū)中的變量pack整理內存碎片clf清除圖形窗口path顯示搜索目錄diary日志文件命令quit退出MATLABdir顯示當前目錄下文件save保存內存變量disp顯示變量或文字的內容type顯示文件內容echo命令窗口信息顯示開關2024年10月6日第30頁MATLAB的數(shù)據(jù)類型(1/1)整數(shù)浮點數(shù)復數(shù)邏輯變量各種數(shù)據(jù)類型之間的轉換數(shù)據(jù)類型操作函數(shù)變量系統(tǒng)預定義的特殊變量2024年10月6日第31頁整數(shù)(1/1)MATLAB支持8位、16位、32位和64位的有符號和無符號整數(shù)數(shù)據(jù)類型。整數(shù)數(shù)據(jù)類型除了定義范圍不同外,具有相同的性質。2024年10月6日第32頁浮點數(shù)(1/1)MATLAB的默認數(shù)據(jù)類型是雙精度類型(double)。為了節(jié)省存儲空間,MATLAB也支持單精度數(shù)據(jù)類型的數(shù)組。單精度和雙精度數(shù)據(jù)類型的取值范圍和精度可以通過例2-12的方式進行查看2024年10月6日第33頁復數(shù)(1/2)復數(shù)由兩個部分組成:實部和虛部?;咎摂?shù)單位等于,在MATLAB中虛數(shù)單位由i或者j表示。MATLAB中可以通過兩種方法創(chuàng)建復數(shù),第一種方法為直接輸入法,另一種創(chuàng)建復數(shù)的方法為通過complex函數(shù)。2024年10月6日第34頁復數(shù)(2/2)complex函數(shù)的調用方法如下。c=complex(a,b),返回結果c為復數(shù),其實部為a,虛部為b。輸入?yún)?shù)a和b可以為標量,或者維數(shù)、大小相同的向量、矩陣或者多維數(shù)組,輸出參數(shù)和a和b的結構相同。a和b可以有不同的數(shù)據(jù)類型,當a和b為各種不同的類型時,返回值分別為:當a和b中有一個為單精度時,返回結果為單精度;如果a和b其中一個為整數(shù)類型,則另外一個必須有相同的整數(shù)類型,或者為雙精度型,返回結果c為相同的整數(shù)類型。c=complex(a),只有一個輸入?yún)?shù),返回結果c為復數(shù),其實部為a,虛部為0。但是此時c的數(shù)據(jù)類型為復數(shù)。2024年10月6日第35頁邏輯變量(1/4)邏輯數(shù)據(jù)類型通過1和0分別表示邏輯真和邏輯假。一些MATLAB函數(shù)或操作符會返回邏輯真或邏輯假表示條件是否滿足。如表達式(5*10)>40返回邏輯真。在MATLAB中,存在邏輯數(shù)組,如下面的表達式返回邏輯數(shù)組:>>[3040506070]>40ans=001112024年10月6日第36頁邏輯變量(2/4)邏輯數(shù)組的創(chuàng)建創(chuàng)建邏輯數(shù)組的最簡單的方法為直接輸入元素的值為true或者false邏輯數(shù)組也可以通過邏輯表達式生成2024年10月6日第37頁邏輯變量(3/4)邏輯數(shù)組的應用用于條件表達式 如果僅當條件成立時執(zhí)行某段代碼,可以應用邏輯數(shù)組進行判斷和控制用于數(shù)組索引 在MATLAB中支持通過一個數(shù)組對另一個數(shù)組進行索2024年10月6日第38頁邏輯變量(4/4)邏輯數(shù)組的判斷MATLAB中提供了一組函數(shù)用于判斷數(shù)組是否為邏輯數(shù)組函數(shù)功能whos(x)顯示數(shù)組x的元素值及數(shù)據(jù)類型islogical(x)判斷數(shù)組x是否為邏輯數(shù)組,是則返回真isa(x,'logical')判斷數(shù)組x是否為邏輯數(shù)組,是則返回真class(x)返回數(shù)組x的數(shù)據(jù)類型cellfun('islogical',x)判斷單元數(shù)組的每個單元是否為邏輯值2024年10月6日第39頁各種數(shù)據(jù)類型之間的轉換(1/1)在MATLAB中,各種數(shù)據(jù)類型之間可以互相轉換,轉換方式為:1)datatype(variable),其中datatype為目標數(shù)據(jù)類型,variable為待轉換的變量;2)cast(x,’type’),將x的類型轉換為’type’指定的類型。轉換時,如果由高精確度數(shù)據(jù)類型轉換為低精確度數(shù)據(jù)類型,則對數(shù)據(jù)進行四舍五入;如果由定義范圍大的數(shù)據(jù)類型轉換為定義范圍小的數(shù)據(jù)類型,則返回目標數(shù)據(jù)類型的上限或下限。2024年10月6日第40頁數(shù)據(jù)類型操作函數(shù)(1/1)函數(shù)描述double創(chuàng)建或轉化為雙精度類型single創(chuàng)建或轉化為單精度類型int8,int16,int32,int64創(chuàng)建或轉化為相應的有符號整數(shù)類型uint8,uint16,uint32,uint64創(chuàng)建或轉化為相應的無符號整數(shù)類型isnumeric判斷是否為整數(shù)或浮點數(shù),是則返回true(或者1)isinteger判斷是否為整數(shù),是則返回true(或者1)isfloat判斷是否為浮點數(shù),是則返回true(或者1)isa(x,’type’)判斷是否為‘type’

指定的類型,是則返回true(或者1)cast(x,’type’)設置x的類型為’type’intmax(‘type’)’type’

類型的最大整數(shù)值intmin(‘type’)’type’

類型的最小整數(shù)值realmax(‘type’)’type’

類型的最大浮點實數(shù)值realmin(‘type’)’type’

類型的最小浮點實數(shù)值eps(‘type’)’type’

類型eps值eps(‘x’)變量x的eps值2024年10月6日第41頁變量(1/1)MATLAB的變量命名規(guī)則與其他計算機語言類似,這一節(jié)介紹MATLAB的命名規(guī)則。首先,變量名必須是一個單一的詞,不能包含空格,另外其命名必須符合下列規(guī)則:(1)變量名區(qū)分大小寫。如pi和Pi是兩個不同的變量。在命令窗口中輸入如下的命令,查看其結果。(2)變量名長度不超過63個字符,超過的部分將會被忽略。(3)變量名必須以字母開始,其后可以為字母、數(shù)字或者下劃線。MATLAB中的變量名不支持其他符號,因為其他符號在MATLAB中具有特殊的意義。

2024年10月6日第42頁系統(tǒng)預定義的特殊變量(1/1)

名描

述ans結果顯示的默認變量名beep使計算機發(fā)出“嘟嘟”聲pi圓周率eps浮點數(shù)的精度(2.2204e-016),MALTAB中的最小數(shù)inf無窮大,如當除數(shù)為0時系統(tǒng)返回infNaN或nan表示不定數(shù),即結果不能確定i或j虛數(shù)單位nargin函數(shù)的輸入?yún)?shù)個數(shù)nargout函數(shù)的輸出參數(shù)個數(shù)realmin可用的最小正實數(shù)2.2251e-308realmax可用的最大正實數(shù)值1.7977e+308bitmax可用的最大正整數(shù)(以雙精度格式存儲)varargin可變的函數(shù)輸入?yún)?shù)個數(shù)varargout可變的函數(shù)輸出參數(shù)個數(shù)2024年10月6日第43頁MATLAB的運算符(1/3)關系運算符MATLAB的關系運算符能用來比較兩個相同大小的數(shù)組,或用來比較一個數(shù)組和一個標量。MATLAB的關系運算符包括所有常用的比較運算符。

運算符說明運算符說明<小于<=小于或等于>大于>=大于或等于==等于~=不等于2024年10月6日第44頁MATLABR2023b的運算符(2/3)邏輯運算符邏輯運算符主要包括“與”、“或”和“非”。使用邏輯運算符可以將多個表達式組合在一起,或者對關系表達式取反。運算符描述&與&&與,只適用于標量。a&&b,當a的值為假時,則忽略b的值|或||或,只適用于標量。a||b,當a的值為真時,則忽略b的值~非2024年10月6日第45頁MATLABR2023b的運算符(3/3)運算符優(yōu)先級MATLAB首先執(zhí)行具有較高優(yōu)先級的運算,然后執(zhí)行具有較低優(yōu)先級的運算;如果兩個運算的優(yōu)先級相同,則按從左到右的順序執(zhí)行。運算符圓括號()轉置(.’),共軛轉置(‘),乘方(.^),矩陣乘方(^)標量加法(+)、減法(-)、取反(~)乘法(.*),矩陣乘法(*),右除(./),左除(.\),矩陣右除(/),矩陣左除(\)加法(+),減法(-),邏輯非(~)冒號運算符(:)小于(<),小于等于(<=),大于(>),大于等于(>=),等于(==),不等于(~=)數(shù)組邏輯與(&)數(shù)組邏輯或(|)邏輯與(&&)邏輯或(||)2024年10月6日第46頁MATLAB的一些基礎函數(shù)(1/1)位操作函數(shù)邏輯運算函數(shù)集合函數(shù)時間與日期函數(shù)

2024年10月6日第47頁位操作函數(shù)(1/1)所有數(shù)據(jù)在計算機中是轉化為二進制進行操作的,因此,有必要對數(shù)據(jù)進行按位操作。

數(shù)功

能調用格式舉例bitand按位進行“與”操作C=bitand(A,B)bitcmp按位進行“補”操作C=bitcmp(A),C=bitcmp(A,n)bitget獲取指定位置的值C=bitget(A,bit)bitmax獲取雙精度浮點整數(shù)的最大值bitmaxbitor按位進行“或”操作C=bitor(A,B)bitset設定指定位置的值C=bitset(A,bit),C=bitset(A,bit,v)bitshift移位操作C=bitshift(A,k),C=bitshift(A,k,n)bitxor按位進行“異或”操作C=bitxor(A,B)swapbytes按字節(jié)進行“逆”操作Y=swapbytes(X)2024年10月6日第48頁邏輯運算函數(shù)(1/1)

數(shù)功

能調用格式舉例all判斷數(shù)組元素是否全部非零B=all(A),B=all(A,dim)any判斷數(shù)組是否存在非零元素B=any(A),B=any(A,dim)false邏輯0(假)False,false(n)等find查找非零元素的下標及其值ind=find(X),ind=find(X,k)等is*查看元素狀態(tài)代表一類函數(shù),如iscell等isa判斷輸入是否為給定類的對象K=isa(obj,'class_name')iskeyword判斷字符串是否為MATLAB關鍵字tf=iskeyword('str'),iskeywordstrisvarname判斷字符串是否為有效變量名tf=isvarname('str'),isvarnamestrlogical將數(shù)值變量轉化為邏輯變量K=logical(A)true邏輯1(真)True,true(n)等xor邏輯“異或”C=xor(A,B)2024年10月6日第49頁集合函數(shù)(1/1)

數(shù)功

能調用格式舉例intersect計算兩個集合的交集c=intersect(A,B)ismember集合的數(shù)組成員tf=ismember(A,S)tf=ismember(A,S,'rows')setdiff向量的集合差c=setdiff(A,B)c=setdiff(A,B,'rows')issorted判斷幾何元素是否按序排列tf=issorted(A)tf=issorted(A,'rows')setxor集合異或c=setxor(A,B)c=setxor(A,B,'rows')union兩個向量的集合并c=union(A,B)c=union(A,B,'rows')unique刪除集合中的重復元素b=unique(A)b=unique(A,'rows')2024年10月6日第50頁時間與日期函數(shù)(1/1)

數(shù)功

能調用格式舉例addtodate通過域修改日期R=addtodate(D,N,F)calendar返回指定月的日歷c=calendar,c=calendar(d)clock返回當前時間的向量c=clockcputime返回CPU運行時間cputimedate返回當前日期字符串str=datedatenum將時間和日期轉化為日期格式N=datenum(V),N=datenum(S,F)datestr將時間和日期轉化為字符串格式S=datestr(V),S=datestr(N)datevec將時間和日期轉化為向量格式V=datevec(N),V=datevec(S,F)eomday返回指定月的最后一天E=eomday(Y,M)etime時間向量之間的時間間隔e=etime(t2,t1)now當前日期及時間t=nowtic,toc計時器ticanystatementstocweekday返回指定日期的星期日期[N,S]=weekday(D)2024年10月6日第51頁MATLAB腳本文件(1/4)對于一些簡單的問題,當需要的命令數(shù)很少時,用戶可以直接在MATLAB的命令窗口中輸入命令。但是,對于多數(shù)問題,所需的命令較多,或者需要邏輯運算,進行流程控制,此時采用直接輸入命令的方法則會引起不便。針對這些問題,一個合理的解決方法是使用腳本文件。腳本文件不接受輸入?yún)?shù),不返回任何值,而是代碼的結合,該方法允許用戶將一系列MATLAB命令輸入到一個簡單的腳本文件中,只要在MATLAB命令窗口中執(zhí)行該文件,則會依次執(zhí)行該文件中的命令。2024年10月6日第52頁MATLAB腳本文件(2/4)腳本文件的用法新建腳本文件(即M文件)可以通過4種方式進行:單擊“主頁”工具面板區(qū)域的“新建腳本”按鈕

;單擊“主頁”工具面板區(qū)域的“新建”按鈕

,在打開的下拉菜單中選擇“腳本”選項;在當前目錄窗口中右擊,在彈出的菜單中選擇“新建”|“腳本”命令;使用快捷鍵Ctrl+N。新建后系統(tǒng)會打開文件編輯窗口,在窗口中輸入文件內容。2024年10月6日第53頁MATLAB腳本文件(3/4)塊注釋在MATLAB較早的版本中,注釋是逐行進行的,采用百分號(%)進行標記。逐行注釋不利于用戶增加和修改注釋內容。在MATLAB7.0及以后的版本中,用戶可以使用“%{”和“%}”符號進行塊注釋,“%{”和“%}”分別代表注釋塊的起始和結束。2024年10月6日第54頁MATLAB腳本文件(4/4)代碼單元一個代碼單元指用戶在M文件中指定的一段代碼,以一個代碼單元符號(兩個百分號加空格,即“%%”為開始標志,到另一個代碼單元符號結束,如果不存在代碼單元符號,則直到該文件結束。用戶可以通過MATLAB編輯器中的cell菜單創(chuàng)建和管理代碼單元。需要注意的是,代碼單元只能在MATLAB編輯器窗口中創(chuàng)建和使用,而在MATLAB命令窗口中是無效的。當作命令窗口中運行M文件時,將執(zhí)行文件中的全部語句。2024年10月6日第55頁第3章數(shù)組和向量教學目標教學內容2024年10月6日第56頁教學目標

掌握數(shù)組和向量的概念與性質掌握數(shù)組與向量的操作和運算方法了解數(shù)組與向量的實際應用2024年10月6日第57頁教學內容MATLAB數(shù)組創(chuàng)建數(shù)組數(shù)組操作MATLAB向量2024年10月6日第58頁MATLAB數(shù)組(1/1)

數(shù)組是MATLAB中的基本構件,數(shù)組中的單個數(shù)據(jù)項稱為元素。任何變量在MATLAB中都是以數(shù)組形式存儲和運算的。按照數(shù)組元素個數(shù)和排列方式分類按照數(shù)組的存儲方式分類2024年10月6日第59頁創(chuàng)建數(shù)組(1/1)可以通過直接輸入數(shù)值來創(chuàng)建數(shù)組,也可以通過MATLAB內置函數(shù)來創(chuàng)建具有某一特點的數(shù)組。使用“;”或者另起一行表明一行的結束,如A=[2,5,7;1,3,42]。函數(shù)zeros(m,n)與ones(m,n)分別產生填充值為0或1的m行n列的數(shù)組。函數(shù)rand(m,n)與randn(m,n)分別產生取值為0~1之間的隨機數(shù)的數(shù)組。函數(shù)diag()具有多種形式,最常用的是diag(A),其中A為一數(shù)組,它將A的對角線上的元素作為向量返回;diag(V),其中V為一向量,它返回一個對角線為V的方陣。MATLAB還提供了magic(m)函數(shù),它產生一個填充1到m2之間數(shù)字的數(shù)組,其組織方式使得每一行、每一列以及對角線上的元素分別加起來等于相同的數(shù)。2024年10月6日第60頁數(shù)組操作(1/1)

獲取數(shù)組中的元素可以通過將需要獲取元素的索引值用括號括起來的方式對數(shù)組中的元素進行尋址,其中第一個值為行索引值,第二個值為列索引值。也可以向數(shù)組中存儲數(shù)值。如果在超出數(shù)組范圍的位置寫入時,MATLAB將自動對數(shù)組進行擴充。如果在數(shù)組當前元素位置和將要寫入新數(shù)值的位置之間缺失數(shù)據(jù)的話,MATLAB會將缺失數(shù)據(jù)填充為0。2024年10月6日第61頁數(shù)組操作(2/2)數(shù)組算術操作數(shù)組邏輯運算使用庫函數(shù)數(shù)組連接數(shù)組切片數(shù)組重排線性化數(shù)組2024年10月6日第62頁MATLAB向量(1/1)向量是對相似數(shù)據(jù)項的集合進行分組的最簡單方式,向量是數(shù)據(jù)的一維分組。向量中單個的數(shù)據(jù)項通常稱為元素(element)。向量元素的兩個獨立且截然不同的屬性(數(shù)值及在向量中的位置)決定了其在某一特定向量中的唯一性。2024年10月6日第63頁創(chuàng)建向量(1/1)創(chuàng)建向量有兩種方法:使用一系列常數(shù)來創(chuàng)建向量。通過對已有的向量進行操作產生新的向量。

2024年10月6日第64頁向量尺寸(1/1)向量有一個專門的屬性:向量的長度。在多數(shù)情況下,該長度在向量創(chuàng)建時就已固定。MATLAB能夠通過插入或刪除元素來增加或減小向量的長度。函數(shù)length(V)返回數(shù)組大小中的最大值——對于向量,該數(shù)值即為其長度。2024年10月6日第65頁向量索引(1/1)數(shù)值索引邏輯索引

注意:命令窗口中顯示的邏輯變量值是用1代表真,用0代表假。2024年10月6日第66頁縮短向量(1/1)注意:現(xiàn)實中很少將縮短向量作為對問題的正確求解方法,而且這樣做可能會導致邏輯混亂。有可能的話,使用索引來對需要保留的元素進行復制。2024年10月6日第67頁向量操作(1/1)MATLAB語言的本質核心在于具有豐富的數(shù)組和向量操作工具。有3種方法直接從對標量的操作推廣而來:(1)算術操作。(2)邏輯操作。(3)使用庫函數(shù)。有兩種方法是針對一般情況下的數(shù)組和特殊情況下的向量的:(1)連接。(2)切片(廣義索引)。2024年10月6日第68頁第4章MATLAB的數(shù)學運算教學目標教學內容2024年10月6日第69頁教學目標

掌握多項式運算及插值掌握函數(shù)操作掌握微分方程2024年10月6日第70頁教學內容多項式與插值函數(shù)運算微分方程2024年10月6日第71頁多項式與插值(1/3)多項式的表示 在MATLAB中多項式用一個行向量表示,向量中的元素為該多項式的系數(shù),按照降序排列。多項式的四則運算 多項式的加減即為對應項系數(shù)的加減。多項式的乘法實際上是多項式系數(shù)向量之間的卷積運算,可以通過MATLAB中的卷積函數(shù)conv來完成。多項式的除法為乘法的逆運算,可以通過反卷積函數(shù)deconv來實現(xiàn)。

2024年10月6日第72頁多項式與插值(2/3)多項式的其他運算函數(shù)功能roots多項式求根polyval多項式求值polyvalm矩陣多項式求值polyder多項式求導poly求矩陣的特征多項式;或者求一個多項式,其根為指定的數(shù)值polyfit多項式曲線擬合residue求解余項2024年10月6日第73頁多項式與插值(3/3)數(shù)據(jù)插值。插值運算中可選的方法。參數(shù)對應方法‘nearest’最近鄰插值‘linear’線性插值‘spline’三次樣條插值‘pchip’或’cubic’三次插值2024年10月6日第74頁函數(shù)運算(1/5)函數(shù)的表示利用M文件將函數(shù)定義為MATLAB函數(shù)采用匿名函數(shù)的方式數(shù)學函數(shù)圖像的繪制

fplot函數(shù)的調用方式:(1)fplot(fun,xinterval),y=f(x)。fun可以為MATLAB函數(shù)的M文件名;也可以是包含變量x的字符串,該字符串可以傳遞給函數(shù)eval;還可以是函數(shù)句柄。(2)參數(shù)limits用于指定繪制圖像的范圍。limits是一個向量,用于指定x軸的范圍,格式為[xminxmax]。不設limits值,默認x軸區(qū)間為[-55]。

2024年10月6日第75頁函數(shù)運算(2/5)函數(shù)極值一元函數(shù)的極小值多元函數(shù)的極小值2024年10月6日第76頁函數(shù)運算(3/5)函數(shù)求解使用函數(shù)fzero來求一元函數(shù)的零點,該函數(shù)的調用格式如下:(1)x=fzero(fun,x0),x=fzero(fun,[x1,x2]):尋找x0附近或者區(qū)間[x1,x2]內fun的零點,返回該點的x坐標。(2)x=fzero(fun,x0,options),x=fzero(fun,[x1,x2],options):通過options設置參數(shù)。(3)[x,fval]=fzero(...):返回零點的同時返回該點的函數(shù)值。(4)[x,fval,exitflag]=fzero(...):返回零點、該點的函數(shù)值及程序退出的標志。(5)[x,fval,exitflag,output]=fzero(...):返回零點、該點的函數(shù)值、程序退出的標志及選定的輸出結果。2024年10月6日第77頁函數(shù)運算(4/5)數(shù)值積分一元函數(shù)的積分一元函數(shù)的矢量積分二重積分和三重積分2024年10月6日第78頁函數(shù)運算(5/5)含參數(shù)函數(shù)的使用用嵌套函數(shù)提供函數(shù)參數(shù)用匿名函數(shù)提供函數(shù)參數(shù)2024年10月6日第79頁微分方程(1/2)

常微分方程初值問題顯式常微分方程完全隱式常微分方程2024年10月6日第80頁微分方程(2/2)常微分方程邊值問題bvp4c函數(shù)用于求解常微分方程邊值問題,該函數(shù)調用格式如下:sol=bvp4c(odefun,bcfun,solinit)sol=bvp4c(odefun,bcfun,solinit,options)2024年10月6日第81頁第5章字符串、單元數(shù)組和結構體教學目標教學內容2024年10月6日第82頁教學目標掌握字符串的生成及操作掌握單元數(shù)組的生成及操作掌握結構體的生成及操作2024年10月6日第83頁教學內容字符串單元數(shù)組和結構體2024年10月6日第84頁字符串(1/4)字符串的生成MATLAB中的字符串為ASCII值的數(shù)值數(shù)組,作為字符串表達式進行表示。在MATLAB中,生成字符串的方法為stringname=’thecontentofthestring’。2024年10月6日第85頁字符串(2/4)字符串的操作字符串的顯示 直接顯示和利用disp函數(shù)進行顯示。字符串的執(zhí)行 在MATLAB中可以用函數(shù)eval來執(zhí)行字符串。字符串運算 字符串的運算主要包括判斷字符串是否相等,通過字符串運算來比較字符串中的字符,進行字符分類、查找與替換、字符串與數(shù)值數(shù)組之間的相互轉換等。2024年10月6日第86頁字符串比較、查找和替換字符串的比較字符串的比較主要為比較兩個字符串是否相同,字符串中的子串是否相同和字符串中的個別字符是否相同。用于比較字符串的函數(shù)主要是strcmp和strncmp。字符串的查找和替換查找與替換是字符串操作中的一項重要內容。用于查找的函數(shù)主要有findstr,strmatch、strrep、strtok等。字符串(3/4)2024年10月6日第87頁字符串(4/4)字符串與數(shù)值之間的轉化函數(shù)功能備注uintN(如,uint8)將字符串轉化為相應的無符號整數(shù)uint8('ab')→9798str2num將字符型轉化為數(shù)字型str2num('123.56')→123.5600str2double與上一函數(shù)的功能相同,結果更精確一些,同時支持單元字符串數(shù)組double('123.56')→495051465354。hex2num將十六進制數(shù)轉化為雙精度數(shù)hex2num('A')→-1.4917e-154hex2dec將十六進制數(shù)基數(shù)轉化為正數(shù)hex2dec('B')→11bin2dec將二進制轉化為十進制bin2dec('1010')→10base2dec將N底數(shù)字字符串轉化為十進制base2dec('212',3)→232024年10月6日第88頁單元數(shù)組和結構體(1/3)MATLAB中的單元數(shù)組(cellarray)和結構體(structure)數(shù)據(jù)類型均是將不同的相關數(shù)據(jù)集成到一個單一的變量中,使得大量的相關數(shù)據(jù)的處理與引用變得簡單而方便。2024年10月6日第89頁單元數(shù)組和結構體(2/3)單元數(shù)組單元數(shù)組的創(chuàng)建單元數(shù)組的操作(1)單元數(shù)組元素的訪問(2)單元數(shù)組的顯示(3)單元數(shù)組的圖形顯示(4)單元數(shù)組元素的刪除(5)改變單元數(shù)組的維數(shù)(6)改變數(shù)組的形狀2024年10月6日第90頁單元數(shù)組和結構體(3/3)結構體結構體的創(chuàng)建結構體的操作(1)添加成員變量(2)刪除成員變量(3)調用成員變量2024年10月6日第91頁第6章MATLAB編程教學目標教學內容2024年10月6日第92頁教學目標掌握MATLAB的腳本文件及其編輯和調試方法掌握MATLAB的程序設計和開發(fā)流程掌握MATLAB關系運算、邏輯運算及函數(shù)操作掌握MATLAB中的流程控制語句了解MATLAB的程序調試方法2024年10月6日第93頁教學內容腳本文件和編輯器程序設計和開發(fā)關系運算符和邏輯變量邏輯運算符和函數(shù)條件語句循環(huán)switch結構調試MATLAB程序2024年10月6日第94頁腳本文件和編輯器(1/11)在MATLAB中,用戶可以使用兩種方法執(zhí)行運算:

(1)在交互模式下,直接在命令窗口中輸入所有的命令。

(2)通過運行腳本文件中所存儲的MATLAB程序。2024年10月6日第95頁腳本文件和編輯器(2/11)創(chuàng)建和使用腳本文件2024年10月6日第96頁腳本文件和編輯器(3/11)有效使用腳本文件

(1)腳本文件名必須滿足MATLAB為變量命名的約定。(2)為腳本文件賦予的名稱不要與其所計算的變量名稱相同。(3)為腳本文件賦予的名稱要與MATLAB命令或者函數(shù)的名稱都不相同。(4)在交互模式中,腳本文件所創(chuàng)建的所有變量都是全局變量。(5)函數(shù)文件所創(chuàng)建的變量是該函數(shù)的局部變量。用戶如果不必訪問腳本文件中的所有變量,就需要考慮使用函數(shù)文件。這將避免用變量名“弄亂”工作空間,并將同時減少內存需求。(6)在不使用文本編輯器打開M-文件的情況下,用戶可以使用type命令來查看文件的內容。2024年10月6日第97頁腳本文件和編輯器(4/11)有效使用命令行窗口和編輯器用戶可以使用鼠標重新調整窗口的大小并移動窗口,從而可以同時查看它們。如果沒有進入編輯器,那么使用Alt-Tab組合鍵則可快速地在編輯器/調試器窗口和命令窗口之間來回切換。在命令窗口中,使用向上箭頭鍵檢索先前所輸入的腳本文件名,并且按Enter鍵執(zhí)行腳本文件。在修改了腳本文件之后,要確保在切換到命令窗口之前保存文件。用戶可以使用編輯器作為基本的文字處理器來編寫包含有用戶腳本文件、結果和討論的簡短報告,或者用以提供用戶對某一問題的解答。2024年10月6日第98頁腳本文件和編輯器(5/11)調試腳本文件程序調試就是找出和刪除程序中“故障”或者錯誤的過程。

(1)語法錯誤(2)運行時錯誤MATLAB錯誤消息通常使用戶能夠找到語法錯誤。檢查出運行時錯誤,可以嘗試以下方法:

(1)總是使用簡單問題(其可以通過手算來檢驗答案)來測試程序。

(2)刪除語句末尾的分號,用以顯示任何一個中間計算結果。

(3)使用編輯器的調試特性。2024年10月6日第99頁腳本文件和編輯器(6/11)編程風格注釋部分(1)

在第一行中放置程序名和任何關鍵詞。(2)在第二行中放置創(chuàng)建的日期,以及創(chuàng)建者的姓名。(3)

每個輸入和輸出變量的變量名定義。(4)

程序中調用的每個用戶自定義函數(shù)名稱。輸入部分:放置輸入數(shù)據(jù)和/或輸入函數(shù),其允許輸入數(shù)據(jù)。計算部分

:放置計算。

輸出部分:放置那些以所需格式傳遞的輸出函數(shù)。2024年10月6日第100頁腳本文件和編輯器(7/11)記錄度量單位本書建議用戶為所有的輸入變量和輸出變量記錄度量單位,因為很多工程系統(tǒng)所出現(xiàn)的驚人失敗都源于用戶誤解了用于設計系統(tǒng)的程序輸入和輸出變量的單位。2024年10月6日第101頁腳本文件和編輯器(8/11)使用腳本文件存儲數(shù)據(jù)可能會有一些應用程序要求用戶頻繁地訪問同一組數(shù)據(jù)。如果是這樣的話,用戶可以將數(shù)組中的數(shù)據(jù)存儲在一個腳本文件之中。2024年10月6日第102頁腳本文件和編輯器(9/11)控制輸入和輸出MATLAB為從用戶獲取輸入以及為格式化輸出(執(zhí)行MATLAB命令而獲得的結果)提供了許多有用的命令。

令說

明disp(A)顯示數(shù)組A的內容,而不是數(shù)組的名稱disp(‘text’)顯示單引號內部的文本串Format控制屏幕輸出的顯示格式Fprintf執(zhí)行格式化的寫入到屏幕或者寫入到一個文件x=input('text')顯示單引號中的文本,等待用戶的鍵盤輸入,并且將輸入值存儲在x中x=input('text','s')顯示單引號中的文本,等待用戶的鍵盤輸入,并且將輸入作為字符串存儲在x中k=menu('title','option1','option2',...顯示菜單,該菜單的名稱在字符串變量'title'中,并且菜單的選項是'option1'、'option2'等等2024年10月6日第103頁腳本文件和編輯器(10/11)用戶輸入input函數(shù)用以在屏幕上顯示文本,等待用戶從鍵盤輸入某些內容,然后再將輸入內容存儲在指定變量之中。2024年10月6日第104頁腳本文件和編輯器(11/11)腳本文件示例%程序Falling_Speed.m:繪制一個下落物體的速度圖形。%W.PalmIII于2004年3月1日創(chuàng)建。%%輸入變量:%tf=最終時間(單位為秒)%%輸出變量:%t=計算速度的時間數(shù)組(單位為秒)%v=速度數(shù)組(米/秒)%參數(shù)值:g=9.81;%以SI為單位的重力加速度%%輸入部分:tf=input('Enterthefinaltimeinseconds:');%%計算部分:dt=tf/500;t=[0:dt:tf];%創(chuàng)建一個有501個時間值的數(shù)組。v=g*t;%%輸出部分:plot(t,v),xlabel('Time(seconds)'),ylabel('Speed(meters/second)')2024年10月6日第105頁程序設計和開發(fā)(1/5)算法和控制結構(1)順序運算。(2)條件運算。(3)迭代運算(循環(huán))。

結構化程序設計(1)編寫結構化程序較容易。(2)為一個應用編寫的模塊(函數(shù))也可以用于其他的應用。(3)調試結構化程序較容易。(4)結構化程序設計在團隊環(huán)境中非常有效。(5)理解和修改結構化程序較容易。2024年10月6日第106頁程序設計和開發(fā)(2/5)自頂向下的設計和程序文檔(1)簡明地陳述問題(2)指定程序所使用的數(shù)據(jù)。這就是“輸入”(3)指定程序所產生的信息。這就是“輸出”(4)通過手算或者計算器完成解決方案的步驟。如果需要的話,可以使用一個較簡單的數(shù)據(jù)集(5)編寫和運行程序(6)用手算結果檢驗程序的輸出(7)用輸入數(shù)據(jù)運行程序,并且對輸出進行一個真實性檢驗(8)如果用戶在將來使用該程序作為一個通用工具,那么,用戶必須通過用一組合理的數(shù)據(jù)值來運行它以進行測試;并對結果進行一個真實性檢驗2024年10月6日第107頁程序設計和開發(fā)(3/5)自頂向下的設計和程序文檔結構圖和流程圖通過使用以下方法實現(xiàn)有效的文檔記錄。(1)合適地選擇變量名,用以反映它們所代表的量。(2)在程序中使用注釋。(3)使用結構圖。(4)使用流程圖。(5)通常在偽代碼中逐字地描述程序。2024年10月6日第108頁程序設計和開發(fā)(4/5)偽代碼

偽代碼是對實際計算機代碼的模仿。偽代碼可以為程序內部的注釋提供根據(jù)。除了提供文檔記錄之外,偽代碼在編寫詳細代碼之前對于一個程序輪廓所進行的描述也很有用。查找故障參看6.1.4節(jié)2024年10月6日第109頁程序設計和開發(fā)(5/5)開發(fā)大型程序(1)編寫和測試各個模塊(單元測試階段)。(2)編寫使用模塊的頂級程序(構建階段)。(3)測試第一個完整的程序(alpha測試版階段)。(4)由內部人員與熟悉和信任的外部用戶(這通常必須簽保密協(xié)議)測試最后的alpha測試版。2024年10月6日第110頁關系運算符和邏輯變量(1/4)6個關系運算符:

<小于,<=小于或者等于,>大于,

>=大于或者等于,==等于,~=不等于使用關系運算符進行比較的結果是0(如果比較是假)或者1(如果比較是真),并且MATLAB可以使用這個結果作為一個變量。用于比較數(shù)組時,關系運算符逐元素地比較數(shù)組。比較的數(shù)組必須具有相同的維數(shù)。唯一的例外是當用戶比較一個數(shù)組和一個標量的時候,這時MATLAB將數(shù)組中的所有元素分別與標量進行比較。關系運算符也可以用于數(shù)組尋址。算術運算符+、-、*、/和\的優(yōu)先級高于關系運算符。關系運算符之間的優(yōu)先級相等,并且MATLAB按照從左到右的順序計算它們的值。2024年10月6日第111頁關系運算符和邏輯變量(2/4)logical類當使用關系運算符(如x=(5>2))時,創(chuàng)建了一個邏輯變量(在此處就是x)。在MATLAB之前的版本中,logical是任何一個數(shù)值數(shù)據(jù)類型的屬性。現(xiàn)在,logical是一個第一類數(shù)據(jù)類型和一個MATLAB類,所以logical現(xiàn)在等效于其他的第一類類型,如字符和單元數(shù)組。邏輯變量只可能有值1(真)和0(假)。2024年10月6日第112頁關系運算符和邏輯變量(3/4)logical函數(shù)用戶可以使用關系和邏輯運算符以及l(fā)ogical函數(shù)創(chuàng)建邏輯數(shù)組。logical函數(shù)返回一個可以用于邏輯索引和邏輯測試的數(shù)組。2024年10月6日第113頁關系運算符和邏輯變量(4/4)使用邏輯數(shù)組訪問數(shù)組當使用邏輯數(shù)組尋址另一個數(shù)組時,MATLAB會從那個數(shù)組中提取邏輯數(shù)組有1那個位置中的元素。2024年10月6日第114頁邏輯運算符和函數(shù)(1/2)MATLAB中有5個邏輯運算符,有時也稱為布爾(Boolean)運算符,這些運算符執(zhí)行逐元素運算。除了NOT運算符(~)之外,它們的優(yōu)先級比算術和關系運算符的都低。NOT運算&和|運算符與(AND)運算或(OR)運算異或函數(shù)2024年10月6日第115頁邏輯運算符和函數(shù)(2/2)短路邏輯運算符

A&&BA||B邏輯運算符和find函數(shù)函數(shù)find(x)計算一個數(shù)組,它包含數(shù)組x中那些非零元素的索引。它可與邏輯運算符結合使用。2024年10月6日第116頁條件語句(1/3)if語句

if語句的基本形式:

if邏輯表達式語句

end“嵌套”if語句

if邏輯表達式1

語句組1if邏輯表達式2

語句組2endend每條if語句必須伴隨有一條end語句。end語句標志著邏輯表達式為true時所要執(zhí)行語句的結束。if和邏輯表達式(其可以是一個標量、一個矢量或者一個矩陣)之間需要一個空格。2024年10月6日第117頁條件語句(2/3)else語句與elseif語句else語句的基本結構為:

if邏輯表達式語句組1else

語句組2end使用elseif語句的一般形式是:if邏輯表達式1語句組1elseif邏輯表達式2語句組2else語句組3end2024年10月6日第118頁條件語句(3/3)字符串和條件語句字符串是一個包含有字符的變量。字符串對于創(chuàng)建輸入提示符、消息、存儲以及對諸如姓名和地址等數(shù)據(jù)進行的操作都很有用。要在MATLAB創(chuàng)建一個字符串變量,可以將字符放在單引號中。字符串最重要的應用之一是:創(chuàng)建輸入提示和輸出消息。

2024年10月6日第119頁循環(huán)(1/4)for循環(huán)for循環(huán)的典型結構如下所示:

for循環(huán)變量=m:s:n

語句

end注意

for語句需要伴隨有一個end語句。end語句標志著所要執(zhí)行語句的結束。在for和loop變量(其可能是一個標量、一個矢量或者一個矩陣,但是到目前為止,標量是最常見的情況)之間需要一個空格。2024年10月6日第120頁循環(huán)(2/4)break和continue語句break語句停止循環(huán)的執(zhí)行。continue語句將把控制傳遞給那些它出現(xiàn)在其中的for或者while循環(huán)的下一次迭代之中,并同時跳過循環(huán)主體中的其他任何語句。在嵌套循環(huán)中,continue將控制傳遞給關閉了continue語句的for或者while循環(huán)的下一次迭代。2024年10月6日第121頁循環(huán)(3/4)使用數(shù)組作為循環(huán)索引

MATLAB中允許使用一個矩陣表達式為循環(huán)指定所執(zhí)行的遍數(shù)。在這種情況下,循環(huán)變量是一個矢量,并且在每一遍循環(huán)執(zhí)行期間,MATLAB都將循環(huán)變量設置成等效于矩陣表達式的連續(xù)列。

隱含循環(huán)使用邏輯數(shù)組作為掩碼通??梢酝ㄟ^使用邏輯數(shù)組作為掩碼(即,選擇另一個數(shù)組的元素)來避免使用循環(huán)和分支,用戶因此可以創(chuàng)建更簡單和更快捷的程序。2024年10月6日第122頁循環(huán)(4/4)while循環(huán)while循環(huán)的典型結構如下所示:

while邏輯表達式語句

end要使while循環(huán)正常運行,必須發(fā)生以下這兩個前提條件:

(1)在執(zhí)行while語句之前,循環(huán)變量必須有一個值。(2)語句必須以某種方式改變循環(huán)變量的值。while循環(huán)的主要應用是:當用戶希望只要某個語句為true時,循環(huán)就繼續(xù)進行。2024年10月6日第123頁switch結構(1/1)switch結構的語法是:

switch輸入表達式(標量或者字符串)case值1

語句組1case值2

語句組2...otherwise

語句組nend2024年10月6日第124頁調試MATLAB程序(1/3)

編輯器的選項卡包括“文件”“導航”“代碼”“分析”“節(jié)”和“運行”6個功能面板,每個功能面板里存放的就是同類功能或屬性的功能按鈕。只需將鼠標指針停留在工具欄的某個按鈕上,用戶就可以了解它的功能?!按a”功能區(qū)

使用“代碼”功能區(qū)中的選項(功能按鈕),用戶就可以插入或刪除注釋、增加或減少縮排量、打開智能縮排,并在計算和命令窗口中顯示所選變量的值。2024年10月6日第125頁調試MATLAB程序(2/3)“節(jié)”功能區(qū)使用“節(jié)”功能區(qū)中的“運行節(jié)”“運行并前進”和“前進”按鈕,可以在已經設置了斷點和運行文件之后,單步執(zhí)行用戶的文件?!斑\行”功能區(qū)“運行”按鈕下拉菜單還包含“斷點”和“錯誤處理”功能列表。“斷點”功能列表下的選項主要用來設置/清除斷點(Breakpoint)。2024年10月6日第126頁調試MATLAB程序(3/3)設置首選項

要為編輯器/調試器設置首選項,可以通過“主頁”|“環(huán)境”|“預設項”按鈕

來進行。查找故障設置斷點檢查變量檢查工作空間單步執(zhí)行代碼和繼續(xù)執(zhí)行調試一個循環(huán)2024年10月6日第127頁第7章MATLAB的符號處理教學目標教學內容2024年10月6日第128頁教學目標

掌握基本符號運算掌握符號函數(shù)圖形繪制掌握符號微積分的運算掌握符號方程的求解方法掌握符號積分變換了解mfun函數(shù)的使用了解符號函數(shù)計算器的使用2024年10月6日第129頁教學內容符號運算簡介符號表達式的化簡與替換符號函數(shù)圖形繪制符號微積分符號方程的求解符號積分變換mfun函數(shù)的使用符號函數(shù)計算器2024年10月6日第130頁符號運算簡介(1/6)符號對象符號對象是符號工具箱中定義的另一種數(shù)據(jù)類型。符號對象是符號的字符串表示。在符號工具箱中符號對象用于表示符號變量、表達式和方程。下例說明了符號對象和普通的數(shù)據(jù)對象之間的差別。2024年10月6日第131頁符號運算簡介(2/6)符號變量、表達式的生成sym/str2sym函數(shù)

sym/str2sym函數(shù)可以用于生成單個的符號變量。syms函數(shù)

syms用于一次生成多個符號變量,但是不能用于生成表達式。2024年10月6日第132頁符號運算簡介(3/6)symvar函數(shù)和subs函數(shù)symvar函數(shù)該函數(shù)用于確定一個表達式中的符號變量。subs函數(shù)

subs函數(shù)可以將符號表達式中的符號變量用數(shù)值代替。2024年10月6日第133頁符號運算簡介(4/6)符號和數(shù)值之間的轉化

sym/str2sym函數(shù)用于生成符號變量,也可以將數(shù)值轉化為符號變量。轉化的方式由參數(shù)“flag”確定。

2024年10月6日第134頁符號運算簡介(5/6)任意精度的計算

符號計算的一個非常顯著的特點是:在計算過程中不會出現(xiàn)舍入誤差,從而可以得到任意精度的數(shù)值解。如果希望計算結果精確,可以用符號計算來獲得足夠高的計算精度。符號計算相對于數(shù)值計算而言,需要更多的計算時間和存儲空間。MATLAB工具箱中有三種不同類型的算術運算:數(shù)值型:MATLAB的浮點數(shù)運算;有理數(shù)類型:Maple的精確符號運算;VPA類型:Maple的任意精度算術運算。2024年10月6日第135頁符號運算簡介(6/6)創(chuàng)建符號方程1.創(chuàng)建抽象方程2.創(chuàng)建符號方程創(chuàng)建符號方程的方法有兩種:利用符號表達式創(chuàng)建和創(chuàng)建M文件。

2024年10月6日第136頁符號表達式的化簡與替換(1/2)

符號表達式的化簡

MATLAB中collect、expand、horner、factor和simplify函數(shù)分別實現(xiàn)符號表達式的化簡。1.Collect2.expand3.horner4.Factor5.simplify2024年10月6日第137頁符號表達式的化簡與替換(2/2)符號表達式的替換1.subexpr2.subs2024年10月6日第138頁符號函數(shù)圖形繪制(1/3)符號函數(shù)曲線的繪制1.顯函數(shù)2.隱函數(shù)3.參數(shù)方程4.三維參數(shù)曲線2024年10月6日第139頁符號函數(shù)圖形繪制(2/3)符號函數(shù)曲面網(wǎng)格圖及表面圖的繪制1.ezmesh、ezsurf2.ezmeshc、ezsurfc2024年10月6日第140頁等值線的繪制在MATLAB中,用于繪制符號函數(shù)等值線的函數(shù)有ezcontour和ezcontourf,這兩個函數(shù)分別用于繪制等值線和帶有區(qū)域填充的等值線。符號函數(shù)圖形繪制(3/3)2024年10月6日第141頁符號微積分(1/5)符號表達式求極限在MATLAB中函數(shù)limit用于求表達式的極限。

limit(F,x,a),當x趨近于a時表達式F的極限。

limit(F,a),當F中的自變量趨近于a時F的極限,自變量由findsym函數(shù)確定。

limit(F),當F中的自變量趨近于0時F的極限,自變量由findsym函數(shù)確定。

limit(F,x,a,'right'),當x從右側趨近于a時F的極限。

limit(F,x,a,'left'),當x從左側趨近于a時F的極限。2024年10月6日第142頁符號微積分(2/5)符號微分

MATLAB中函數(shù)diff實現(xiàn)函數(shù)求導和求微分,可以實現(xiàn)一元函數(shù)求導和多元函數(shù)求偏導。

diff(S),實現(xiàn)表達式S的求導,自變量由函數(shù)findsym確定。

diff(S,'v'),實現(xiàn)表達式對指定變量v的求導,該語句還可以寫為diff(S,sym('v'))。

diff(S,n),求S的n階導。

diff(S,'v',n),求S對v的n階導,該表達式還可以寫為diff(S,n,'v')。2024年10月6日第143頁符號微積分(3/5)符號積分與微分對應的是積分,在MATLAB中,函數(shù)int用于實現(xiàn)符號微分運算。

R=int(S),求表達式S的不定積分,自變量由findsym函數(shù)確定。

R=int(S,v),求表達式S對自變量v的不定積分。

R=int(S,a,b),求表達式S在區(qū)間[a,b]上的定積分,自變量由findsym函數(shù)確定。

R=int(S,v,a,b),求表達式S在區(qū)間[a,b]上的定積分,自變量為v。2024年10月6日第144頁級數(shù)求和

symsum函數(shù)用于級數(shù)的求和

溫馨提示

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

評論

0/150

提交評論