版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Matlab的作用
在歐美各高等學校,Matlab成為線性代數(shù)、自動控制理論、圖像處理等諸多課程的基本教學工具,成為本科生、碩士生和博士生的必須掌握的基本技能。在設(shè)計研究單位和工業(yè)部門,Matlab已被廣泛地用于研究和解決各種具體的工程問題。
12/29/20221ApplicationofMatlabLanguageMatlab的作用在歐美各高等學校,Matlab成為線性代第一講
Matlab概述
12/29/20222ApplicationofMatlabLanguage第一講Matlab概述12/26/20222Applic
MATLAB產(chǎn)品由若干模塊組成,不同的模塊完成不同的功能,其中有:
實際上MATLAB本身就是一個極其豐富的資源庫,那么應該從哪一部分開始著手、學習使用MATLAB呢?這就有必要了解這一軟件產(chǎn)品的體系結(jié)構(gòu)。MATLABCompiler這種編譯器可以將MATLAB程序文件編譯生成標準的C/C++語言文件,而生成的標準的C/C++文件可以被任何一種C/C++編譯器編譯生成函數(shù)庫或可執(zhí)行文件,以提高程序的運行效率。1.2MATLAB產(chǎn)品的體系結(jié)構(gòu)
MATLABMATLABToolboxesMATLABCompilerSimulinkSimulinkBlocksetsReal-TimeWorkshop(RTW)StateflowStateflowCoder由這些模塊產(chǎn)品之間的關(guān)系可以圖1.1表示。圖1.1MATLAB產(chǎn)品體系結(jié)構(gòu)圍繞著MATLAB這個計算核心,形成了諸多針對不同應用領(lǐng)域的算法程序包,被稱為專用工具箱(Toolbox),這些工具箱的列表以及每個工具箱的使用詳見MATLAB在線幫助文檔。MATLAB本身所提供的工具箱大概有40多個,另外還有其他公司或研究單位開發(fā)提供的工具箱,這些工具箱的總數(shù)已有100多個,而且新的工具箱還在不斷增加。如果你有特別的應用領(lǐng)域,可以首先到網(wǎng)上查找是否已有相關(guān)的工具箱,很可能已有人將你要做的應用程序作成工具箱了。Simulink是窗口圖形方式的、專門用于連續(xù)時間或離散時間的動態(tài)系統(tǒng)建模、分析和仿真的核心。MATLAB是MATLAB產(chǎn)品家族的計算核心與基礎(chǔ),是集高性能數(shù)值計算與數(shù)據(jù)可視化于一體的高效編程語言。
12/29/20223ApplicationofMatlabLanguageMATLAB產(chǎn)品由若干模塊組成,不同的模塊完成不同的1.3MATLAB編程語言的特點
語法規(guī)則簡單。尤其內(nèi)定的編程規(guī)則,與其他編程語言(如C、Fortran等)相比更接近于常規(guī)數(shù)學表示。對于數(shù)組變量的使用,不需類型聲明,無需事先申請內(nèi)存空間。
MATLAB基本的語言環(huán)境提供了數(shù)以千計的計算函數(shù),極大的提高了用戶的編程效率。如,一個fft函數(shù)即可完成對指定數(shù)據(jù)的快速傅里葉變換,這一任務如果用C語言來編程實現(xiàn)的話,至少要用幾十條C語言才能完成。
12/29/20224ApplicationofMatlabLanguage1.3MATLAB編程語言的特點語法規(guī)則簡單。尤其內(nèi)2.1啟動與退出MATLAB啟動MATLAB直接用鼠標雙擊桌面上MATLAB7.1圖標或Windows桌面的“開始”—〉“所有程序”—〉“MATLAB7.1”—〉“MATLAB7.1”。退出MATLAB關(guān)閉MATLAB桌面在命令窗口執(zhí)行quit或exit命令MATLAB缺省桌面(見下頁)
12/29/20225ApplicationofMatlabLanguage2.1啟動與退出MATLAB啟動MATLAB12/26/菜單欄工具欄文件編輯窗口工作空間歷史命令窗口Start菜單命令窗口命令提示符2.1啟動與退出MATLAB(續(xù))
12/29/20226ApplicationofMatlabLanguage菜單欄工具欄文件編輯窗口工作空間歷史命令Start菜單命令2.2命令窗口的使用激活命令窗口?!?gt;>”與閃爍的光標一起表明系統(tǒng)就緒,等待輸入。簡單計算【例1】計算(1)在MATLAB命令窗口輸入以下內(nèi)容:>>(12+2*(7-4))/3^2(2)按【Enter】鍵,指令執(zhí)行。(3)返回的計算結(jié)果:ans=2
12/29/20227ApplicationofMatlabLanguage2.2命令窗口的使用激活命令窗口。12/26/202272.2命令窗口(續(xù))〖說明〗在命令窗口【Enter】鍵提交命令執(zhí)行。Matlab所用運算符(如+、-、^等)是各種計算程序中常見的。計算結(jié)果中的“ans”是英文“answer”的一種縮寫,其含義就是“運算答案”。ans是Matlab的一個預定義變量。
12/29/20228ApplicationofMatlabLanguage2.2命令窗口(續(xù))〖說明〗12/26/20228Ap2.2命令窗口(續(xù))簡單計算(續(xù))【例2】計算sin(45?)>>sin(45*pi/180)Matalb中正弦函數(shù)sin就是常見的正弦函數(shù)。它的參數(shù)值是以“弧度”為單位的。pi也是Matalb的預定義變量。pi=3.14159…Matlab對字母大小寫是敏感的。【例3】計算的值,其中x=4.92。
>>sqrt(2*exp(4.92+0.5)+1)Matalb中開平方—sqrt(x),是英文squareroot的縮寫
。Matalb中指數(shù)函數(shù)exp(x),常見的表達方式。ans=0.7071ans=21.2781
12/29/20229ApplicationofMatlabLanguage2.2命令窗口(續(xù))簡單計算(續(xù))Matalb中正弦函數(shù)命令窗口
(續(xù))【例4】計算半徑為5.2m的圓的周長和面積。>>radius=5.2;%圓的半徑>>area=pi*5.2^2,
circle_len=2*pi*5.2area=84.9487circle_len=32.6726以上兩例,命令行中用到了等號“=”。計算結(jié)果不再賦給“ans”,而是賦給用戶指定的變量y、area、circle_len。無論是預定義變量還是用戶自定義變量都被存儲在系統(tǒng)的工作空間內(nèi),即系統(tǒng)定義的一個存儲窗口變量的內(nèi)存空間。Who、whos命令用來顯示工作空間的變量clear命令用來清除工作空間的變量。
12/29/202210ApplicationofMatlabLanguage命令窗口(續(xù))【例4】計算半徑為5.2m的圓的周長和面積。命令窗口
(續(xù))數(shù)值顯示格式設(shè)置缺省顯示格式:簡潔的短(shortg)格式窗口命令及語法格式:format顯示格式關(guān)鍵字如:formatlong%15位數(shù)字顯示常見通用命令命令 含義clc 清除命令窗口的顯示內(nèi)容clear 清除Matlab工作空間中保存的變量who或whos 顯示Matlab工作空間中的變量信息dir 顯示當前工作目錄的文件和子目錄清單cd 顯示或設(shè)置當前工作目錄Help 獲取在線幫助quit或exit 關(guān)閉/退出MATALB
12/29/202211ApplicationofMatlabLanguage命令窗口(續(xù))數(shù)值顯示格式設(shè)置12/26/202211A工作空間查看工作空間內(nèi)存變量,可以由who、whos。命名新變量。修改變量名刪除變量繪圖保存變量數(shù)據(jù)裝入數(shù)據(jù)
12/29/202212ApplicationofMatlabLanguage工作空間查看工作空間內(nèi)存變量,可以由who、whos。1歷史窗口歷史窗口:首先記錄每次啟動時間并記錄在命令窗口輸入命令,此次運行期間,輸入的所有命令被記錄為一組,并以此次啟動時間為標志。要清除歷史記錄,可以選擇Edit菜單中的ClearCommandHistory命令
12/29/202213ApplicationofMatlabLanguage歷史窗口歷史窗口:要清除歷史記錄,可以選擇Edit菜單中的C當前目錄窗口和搜索路徑當前目錄窗口:指Matlab運行時的工作目錄。(dir)只有在當前目錄和搜索路徑下的文件、函數(shù)才可以被運行和調(diào)用。如果沒有特殊指明,數(shù)據(jù)文件也將存放在當前目錄下;用戶可以將自己的工作目錄設(shè)置成當前目錄,從而使得所有操作都在當前目錄中進行。(cd)
12/29/202214ApplicationofMatlabLanguage當前目錄窗口和搜索路徑當前目錄窗口:指Matlab運行時的工獲取在線幫助MATLAB提供的幫助信息有兩類簡單純文本幫助信息helplookfor(條件比較寬松)例:inverse窗口式綜合幫助信息(文字、公式、圖形)dochelpwin
12/29/202215ApplicationofMatlabLanguage獲取在線幫助MATLAB提供的幫助信息有兩類12/26數(shù)值表示、變量及表達式數(shù)值的記述
Matlab的數(shù)只采用習慣的十進制表示,可以帶小數(shù)點和負號;其缺省的數(shù)據(jù)類型為雙精度浮點型(format)(double)。例如:3-100.0011.3e101.256e-6變量命令規(guī)則變量名、函數(shù)名對字母的大小寫是敏感的。如myVar與myvar表示兩個不同的變量。變量名第一個字母必須是英文字母。變量名可以包含英文字母、下劃線和數(shù)字。變量名不能包含空格、標點。變量名最多可包含63個字符(6.5及以后的版本)。
12/29/202216ApplicationofMatlabLanguage數(shù)值表示、變量及表達式數(shù)值的記述12/26/202216A數(shù)值表示、變量及表達式(續(xù))Matlab預定義的變量變量名意義ans最近的計算結(jié)果的變量名epsMATLAB定義的正的極小值=2.2204e-16pi圓周率πinf∞值,無限大i或j虛數(shù)單元,sqrt(-1)NaN非數(shù),0/0、∞/∞〖說明〗每當MATLAB啟動完成,這些變量就被產(chǎn)生。MATLAB中,被0除不會引起程序中斷,給出報警的同時用inf或NaN給出結(jié)果。用戶只能臨時覆蓋這些預定義變量的值,Clear或重啟MATLAB可恢復其值。
12/29/202217ApplicationofMatlabLanguage數(shù)值表示、變量及表達式(續(xù))Matlab預定義的變量變量名數(shù)值表示、變量及表達式
(續(xù))運算符和表達式運算數(shù)學表達式MATLAB運算符MATLAB表達式加a+b+a+b減a-b-a-b乘axb*a*b除a/b或a\b/或\a/b或a\b冪^a^b〖說明〗Matlab用“\”a的逆和”/”分別表示“左除”和“右除”。對標量而言,兩者沒有區(qū)別。對矩陣產(chǎn)生不同影響。MATLAB表達式的書寫規(guī)則與“手寫方式”幾乎完全相同。表達式按與常規(guī)相同的優(yōu)先級自左至右執(zhí)行運算。優(yōu)先級:指數(shù)運算級別最高,乘除次之,加減最低。括號改變運算的次序。
12/29/202218ApplicationofMatlabLanguage數(shù)值表示、變量及表達式(續(xù))運算符和表達式運算數(shù)學表達式MMatlab矩陣(數(shù)組)的表示數(shù)組的概念一維數(shù)組變量的創(chuàng)建二維數(shù)組變量的創(chuàng)建
12/29/202219ApplicationofMatlabLanguageMatlab矩陣(數(shù)組)的表示數(shù)組的概念12/26/202.數(shù)組(array)的概念數(shù)組定義:按行(row)和列(column)順序排列的實數(shù)或復數(shù)的有序集,被稱為數(shù)組。數(shù)組中的任何一個數(shù)都被稱為這個數(shù)組的元素,由其所在的行和列標識,這個標識也稱為數(shù)組元素的下標或索引。Matlab將標量視為1×1的數(shù)組。
12345222232425332333435442434445a(3,4)=34rowisfirsta=
12/29/202220ApplicationofMatlabLanguage.數(shù)組(array)的概念數(shù)組定義:12345222232數(shù)組的分類一維數(shù)組,也稱為向量(vector)。行向量(rowvector)、列向量(columnvector)。二維數(shù)組(矩陣matrix)。有效矩陣:每行元素的個數(shù)必須相同,每列元素的個數(shù)也必須相同。數(shù)組(array)的概念
12/29/202221ApplicationofMatlabLanguage數(shù)組的分類數(shù)組(array)的概念12/26/202221數(shù)組(array)的概念(續(xù))行向量列向量a(2,1)=3a(1,2)=2b(3)=3c(2)=2
12/29/202222ApplicationofMatlabLanguage數(shù)組(array)的概念(續(xù))行向量列向量a(2,1)=3創(chuàng)建一維數(shù)組變量第一種方法:使用方括號“[]”操作符【例5】創(chuàng)建數(shù)組(行向量)a=[13pi]>>a=[13pi]%ora=[1,3,pi]
a=1.00003.00003.1416向量元素間用空格或英文的逗點“,”分開。第二種方法:使用冒號“:”操作符【例6】創(chuàng)建以1~10順序排列整數(shù)為元素的行向量b。>>b=1:10b=12345678910
12/29/202223ApplicationofMatlabLanguage創(chuàng)建一維數(shù)組變量第一種方法:使用方括號“[]”操作符12創(chuàng)建一維數(shù)組變量(續(xù))列向量的創(chuàng)建使用方括號“[]”操作符,使用分號“;”分割行?!纠?】鍵入并執(zhí)行x=[1;2;3]X=123
12/29/202224ApplicationofMatlabLanguage創(chuàng)建一維數(shù)組變量(續(xù))列向量的創(chuàng)建12/26/202224創(chuàng)建一維數(shù)組變量
(續(xù))一旦被創(chuàng)建,變量就被存儲在工作空間,可以通過“Workspace”窗口或在“CommandWindow”執(zhí)行“whos”命令察看。操作一:使用“Workspace”窗口察看變量操作二:使用“whos”命令察看變量
12/29/202225ApplicationofMatlabLanguage創(chuàng)建一維數(shù)組變量(續(xù))一旦被創(chuàng)建,變量就被存儲在工作空間,創(chuàng)建二維數(shù)組變量第一種方法:使用方括號“[]”操作符使用規(guī)則數(shù)組元素必須在“[]”內(nèi)鍵入;行與行之間須用分號“;”間隔,也可以在分行處用回車鍵間隔;行內(nèi)元素用空格或逗號“,”間隔?!纠?】鍵入并執(zhí)行a2=[123;456;789]a2=123456789【例9】鍵入并執(zhí)行a2=[1:3;4:6;7:9]%結(jié)果同上
12/29/202226ApplicationofMatlabLanguage創(chuàng)建二維數(shù)組變量第一種方法:使用方括號“[]”操作符12創(chuàng)建二維數(shù)組變量(續(xù))第二種方法:函數(shù)方法函數(shù)ones(生成全1矩陣)、zeros(生成全0矩陣)、
“helpelmat”獲得基本的矩陣生成和操作函數(shù)列表【例10】創(chuàng)建全1的3x3數(shù)組。>>ones(3)【例11】創(chuàng)建全1的3x4數(shù)組。>>ones(3,4)
12/29/202227ApplicationofMatlabLanguage創(chuàng)建二維數(shù)組變量(續(xù))第二種方法:函數(shù)方法12/26/20數(shù)組元素的標識與尋訪數(shù)組元素的標識“全下標(index)”標識經(jīng)典數(shù)學教科書采用“全下標”標識法:每一維對應一個下標。如對于二維數(shù)組,用“行下標和列下標”標識數(shù)組的元素,a(2,3)就表示二維數(shù)組a的“第2行第3列”的元素。對于一維數(shù)組,用一個下標即可,b(2)表示一維數(shù)組b的第2個元素,無論b是行向量還是列向量。
12/29/202228ApplicationofMatlabLanguage數(shù)組元素的標識與尋訪數(shù)組元素的標識12/26/202228數(shù)組的算術(shù)運算MATLAB數(shù)組支持線性代數(shù)中所有的矩陣運算。建立特有的數(shù)組運算符,如:“.*”、“./”等。
MATLAB數(shù)組運算符列表運算 運算符 含義說明
加 +相應元素相加減 - 相應元素相減乘 * 矩陣乘法點乘 .* 相應元素相乘冪 ^ 矩陣冪運算點冪 .^ 相應元素進行冪運算左除或右除 \或/ 矩陣左除或右除左點除或右點除.\或./ A的元素被B的對應元素除
12/29/202229ApplicationofMatlabLanguage數(shù)組的算術(shù)運算MATLAB數(shù)組支持線性代數(shù)中所有的矩陣運算。算術(shù)運算(續(xù))【例12】點冪“.^”舉例>>a=1:6a=123456>>a=a.^2a=149162536
12/29/202230ApplicationofMatlabLanguage算術(shù)運算(續(xù))【例12】點冪“.^”舉例12/26/2數(shù)據(jù)分析與統(tǒng)計最大值和最小值
MATLAB提供的求數(shù)據(jù)序列的最大值和最小值的函數(shù)分別為max和min,兩個函數(shù)的調(diào)用格式和操作過程類似。
1、求向量的最大值和最小值
(1)y=max(X):返回向量X的最大值存入y,如果X中包含復數(shù)元素,則按模取最大值;
(2)[y,I]=max(X):返回向量X的最大值存入y,最大值的序號存入I,如果X中包含復數(shù)元素,則按模取最大值。
12/29/202231ApplicationofMatlabLanguage數(shù)據(jù)分析與統(tǒng)計最大值和最小值12/26/202231Ap【例13】求向量的最大值>>x=[-43,72,9,16,23,47];>>y=max(x)%求向量x中的最大值y=72>>[y,l]=max(x)%求向量x中的最大值及其該元素的位置y=72l=2
12/29/202232ApplicationofMatlabLanguage【例13】求向量的最大值12/26/202232Appli數(shù)據(jù)分析與統(tǒng)計2.求矩陣的最大值和最小值求矩陣A的最大值的函數(shù)有3種調(diào)用格式,分別是:(1)max(A):返回一個行向量,向量的第i個元素是矩陣A的第i列上的最大值;(2)[Y,U]=max(A):返回行向量Y和U,Y向量記錄A的每列的最大值,U向量記錄每列最大值的行號;
12/29/202233ApplicationofMatlabLanguage數(shù)據(jù)分析與統(tǒng)計2.求矩陣的最大值和最小值12/26/20【例14】求矩陣的最大值>>x=[-43,72,9;16,23,47];>>y=max(x)%求矩陣x中每列的最大值y=167247>>[y,l]=max(x)%求矩陣x中每列的最大值及其該元素的位置y=
167247l=212
12/29/202234ApplicationofMatlabLanguage【例14】求矩陣的最大值12/26/202234Appli數(shù)據(jù)分析與統(tǒng)計平均值
求數(shù)據(jù)序列平均值的函數(shù)是mean。函數(shù)的調(diào)用格式為:mean(X):返回向量X的算術(shù)平均值。mean(A):返回一個行向量,其第i個元素是A的第i列的算術(shù)平均值。
12/29/202235ApplicationofMatlabLanguage數(shù)據(jù)分析與統(tǒng)計平均值12/26/202235Applic二維曲線繪圖的基本操作plot指令的基本調(diào)用格式(1)plot(x)x為向量時,以該元素的下標為橫坐標、元素值為縱坐標繪出曲線(2)plot(x,y)x、y為同維數(shù)組時,繪制以x、y元素為橫縱坐標的曲線
12/29/202236ApplicationofMatlabLanguage二維曲線繪圖的基本操作plot指令的基本調(diào)用格式12/2例14使用直角坐標系在[0,2π]區(qū)間內(nèi),繪制曲線x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)
12/29/202237ApplicationofMatlabLanguage例14使用直角坐標系在[0,2π]區(qū)間內(nèi),繪制曲線12/2例15使用參數(shù)方程繪制曲線繪制曲線t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).^2;plot(x,y)
12/29/202238ApplicationofMatlabLanguage例15使用參數(shù)方程繪制曲線繪制曲線12/26/202238Matlab命令的執(zhí)行方式交互式命令執(zhí)行方式(命令窗口)
逐條輸入,逐條執(zhí)行,操作簡單、直觀,但速度慢,執(zhí)行過程不能保留。M文件的程序執(zhí)行方式
將命令編成程序存儲在一個文件中(M文件),依次運行文件中的命令,可以重復進行。
12/29/202239ApplicationofMatlabLanguageMatlab命令的執(zhí)行方式交互式命令執(zhí)行方式(命令窗口)1M文件的分類用Matlab語言編寫的程序,稱為M文件。
是由若干Matlab命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實現(xiàn)某種算法。M文件根據(jù)調(diào)用方式的不同分為兩類:
命令文件(ScriptFile)
函數(shù)文件(FunctionFile)它們的擴展名都是.m
12/29/202240ApplicationofMatlabLanguageM文件的分類用Matlab語言編寫的程序,稱為M文件。1命令文件和函數(shù)文件的區(qū)別命令文件沒有輸入?yún)?shù),也不返回輸出參數(shù);函數(shù)文件可以帶輸入?yún)?shù),也可以返回輸出參數(shù)。命令文件對工作空間中的變量進行操作,文件中所有命令的執(zhí)行結(jié)果也返回工作空間中;函數(shù)文件中定義的變量為局部變量,當函數(shù)文件執(zhí)行完畢時,這些變量也被清除。命令文件可以直接運行;函數(shù)文件不能直接運行,要以函數(shù)調(diào)用的方式來調(diào)用它。
12/29/202241ApplicationofMatlabLanguage命令文件和函數(shù)文件的區(qū)別命令文件沒有輸入?yún)?shù),也不返回輸出參M文件的建立與打開
M文件是一個文本文件,可以用任何編輯程序來建立和編輯,一般最常用的是使用Matlab提供的文本編輯器。
該編輯器是一個集編輯和調(diào)試于一體的工作環(huán)境。
12/29/202242ApplicationofMatlabLanguageM文件的建立與打開M文件是一個文本文件,程序控制結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)
任何復雜的程序都可以由這3種基本結(jié)構(gòu)構(gòu)成。
12/29/202243ApplicationofMatlabLanguage程序控制結(jié)構(gòu)順序結(jié)構(gòu)12/26/202243Applic例16已知,當n=100時,求y的值。程序如下:y=0;n=100;fori=1:ny=y+1/i/i;endy輸出結(jié)果為:y=1.6350
12/29/202244ApplicationofMatlabLanguage例16已知Matlab矩陣分析與處理特殊矩陣常見的特殊矩陣有零矩陣、幺矩陣、單位矩陣等,這類特殊矩陣在應用中具有通用性。1、通用的特殊矩陣常用的產(chǎn)生通用特殊矩陣的函數(shù)有:zeros:產(chǎn)生全0矩陣(零矩陣)。ones:產(chǎn)生全1矩陣(幺矩陣)。eye:產(chǎn)生單位矩陣。rand:產(chǎn)生0~1間均勻分布的隨機矩陣。
12/29/202245ApplicationofMatlabLanguageMatlab矩陣分析與處理特殊矩陣12/26/202245例17建立隨機矩陣:①在區(qū)間[20,50]內(nèi)均勻分布的5階隨機矩陣。命令如下:
x=20+(50-20)*rand(5)
x=48.503942.862938.463032.171221.736726.934233.694043.758148.064130.586038.205320.555147.654447.507144.395034.579544.642242.146232.308120.295846.739033.341125.288046.809524.1667
12/29/202246ApplicationofMatlabLanguage例17建立隨機矩陣:①在區(qū)間[20,50]內(nèi)均勻分布的5矩陣結(jié)構(gòu)變換(2)構(gòu)造對角矩陣如果V是一個m個元素的向量,diag(V)將產(chǎn)生一個m×m對角矩陣,其主對角線元素即為向量V的元素。例如:diag([1,2,-1,4])ans=1000020000-100004
ans=0000100002000030
12/29/202247ApplicationofMatlabLanguage矩陣結(jié)構(gòu)變換(2)構(gòu)造對角矩陣ans=12/26/20矩陣求逆與線性方程組求解5.6.1矩陣的逆調(diào)用函數(shù)inv(A)。例18求方陣A的逆矩陣,且驗證。A=[1,-1,1;5,-4,3;2,1,1];B=inv(A);A*B
ans=1.000000-0.00001.00000-0.000001.0000
12/29/202248ApplicationofMatlabLanguage矩陣求逆與線性方程組求解5.6.1矩陣的逆12/26/用矩陣求逆方法求解線性方程組將包含n個未知數(shù),由n個方程構(gòu)成的線性方程組表示為:其矩陣表示形式為:其中:因此:
12/29/202249ApplicationofMatlabLanguage用矩陣求逆方法求解線性方程組將包含n個未知數(shù),由nMatlab的作用
在歐美各高等學校,Matlab成為線性代數(shù)、自動控制理論、圖像處理等諸多課程的基本教學工具,成為本科生、碩士生和博士生的必須掌握的基本技能。在設(shè)計研究單位和工業(yè)部門,Matlab已被廣泛地用于研究和解決各種具體的工程問題。
12/29/202250ApplicationofMatlabLanguageMatlab的作用在歐美各高等學校,Matlab成為線性代第一講
Matlab概述
12/29/202251ApplicationofMatlabLanguage第一講Matlab概述12/26/20222Applic
MATLAB產(chǎn)品由若干模塊組成,不同的模塊完成不同的功能,其中有:
實際上MATLAB本身就是一個極其豐富的資源庫,那么應該從哪一部分開始著手、學習使用MATLAB呢?這就有必要了解這一軟件產(chǎn)品的體系結(jié)構(gòu)。MATLABCompiler這種編譯器可以將MATLAB程序文件編譯生成標準的C/C++語言文件,而生成的標準的C/C++文件可以被任何一種C/C++編譯器編譯生成函數(shù)庫或可執(zhí)行文件,以提高程序的運行效率。1.2MATLAB產(chǎn)品的體系結(jié)構(gòu)
MATLABMATLABToolboxesMATLABCompilerSimulinkSimulinkBlocksetsReal-TimeWorkshop(RTW)StateflowStateflowCoder由這些模塊產(chǎn)品之間的關(guān)系可以圖1.1表示。圖1.1MATLAB產(chǎn)品體系結(jié)構(gòu)圍繞著MATLAB這個計算核心,形成了諸多針對不同應用領(lǐng)域的算法程序包,被稱為專用工具箱(Toolbox),這些工具箱的列表以及每個工具箱的使用詳見MATLAB在線幫助文檔。MATLAB本身所提供的工具箱大概有40多個,另外還有其他公司或研究單位開發(fā)提供的工具箱,這些工具箱的總數(shù)已有100多個,而且新的工具箱還在不斷增加。如果你有特別的應用領(lǐng)域,可以首先到網(wǎng)上查找是否已有相關(guān)的工具箱,很可能已有人將你要做的應用程序作成工具箱了。Simulink是窗口圖形方式的、專門用于連續(xù)時間或離散時間的動態(tài)系統(tǒng)建模、分析和仿真的核心。MATLAB是MATLAB產(chǎn)品家族的計算核心與基礎(chǔ),是集高性能數(shù)值計算與數(shù)據(jù)可視化于一體的高效編程語言。
12/29/202252ApplicationofMatlabLanguageMATLAB產(chǎn)品由若干模塊組成,不同的模塊完成不同的1.3MATLAB編程語言的特點
語法規(guī)則簡單。尤其內(nèi)定的編程規(guī)則,與其他編程語言(如C、Fortran等)相比更接近于常規(guī)數(shù)學表示。對于數(shù)組變量的使用,不需類型聲明,無需事先申請內(nèi)存空間。
MATLAB基本的語言環(huán)境提供了數(shù)以千計的計算函數(shù),極大的提高了用戶的編程效率。如,一個fft函數(shù)即可完成對指定數(shù)據(jù)的快速傅里葉變換,這一任務如果用C語言來編程實現(xiàn)的話,至少要用幾十條C語言才能完成。
12/29/202253ApplicationofMatlabLanguage1.3MATLAB編程語言的特點語法規(guī)則簡單。尤其內(nèi)2.1啟動與退出MATLAB啟動MATLAB直接用鼠標雙擊桌面上MATLAB7.1圖標或Windows桌面的“開始”—〉“所有程序”—〉“MATLAB7.1”—〉“MATLAB7.1”。退出MATLAB關(guān)閉MATLAB桌面在命令窗口執(zhí)行quit或exit命令MATLAB缺省桌面(見下頁)
12/29/202254ApplicationofMatlabLanguage2.1啟動與退出MATLAB啟動MATLAB12/26/菜單欄工具欄文件編輯窗口工作空間歷史命令窗口Start菜單命令窗口命令提示符2.1啟動與退出MATLAB(續(xù))
12/29/202255ApplicationofMatlabLanguage菜單欄工具欄文件編輯窗口工作空間歷史命令Start菜單命令2.2命令窗口的使用激活命令窗口?!?gt;>”與閃爍的光標一起表明系統(tǒng)就緒,等待輸入。簡單計算【例1】計算(1)在MATLAB命令窗口輸入以下內(nèi)容:>>(12+2*(7-4))/3^2(2)按【Enter】鍵,指令執(zhí)行。(3)返回的計算結(jié)果:ans=2
12/29/202256ApplicationofMatlabLanguage2.2命令窗口的使用激活命令窗口。12/26/202272.2命令窗口(續(xù))〖說明〗在命令窗口【Enter】鍵提交命令執(zhí)行。Matlab所用運算符(如+、-、^等)是各種計算程序中常見的。計算結(jié)果中的“ans”是英文“answer”的一種縮寫,其含義就是“運算答案”。ans是Matlab的一個預定義變量。
12/29/202257ApplicationofMatlabLanguage2.2命令窗口(續(xù))〖說明〗12/26/20228Ap2.2命令窗口(續(xù))簡單計算(續(xù))【例2】計算sin(45?)>>sin(45*pi/180)Matalb中正弦函數(shù)sin就是常見的正弦函數(shù)。它的參數(shù)值是以“弧度”為單位的。pi也是Matalb的預定義變量。pi=3.14159…Matlab對字母大小寫是敏感的。【例3】計算的值,其中x=4.92。
>>sqrt(2*exp(4.92+0.5)+1)Matalb中開平方—sqrt(x),是英文squareroot的縮寫
。Matalb中指數(shù)函數(shù)exp(x),常見的表達方式。ans=0.7071ans=21.2781
12/29/202258ApplicationofMatlabLanguage2.2命令窗口(續(xù))簡單計算(續(xù))Matalb中正弦函數(shù)命令窗口
(續(xù))【例4】計算半徑為5.2m的圓的周長和面積。>>radius=5.2;%圓的半徑>>area=pi*5.2^2,
circle_len=2*pi*5.2area=84.9487circle_len=32.6726以上兩例,命令行中用到了等號“=”。計算結(jié)果不再賦給“ans”,而是賦給用戶指定的變量y、area、circle_len。無論是預定義變量還是用戶自定義變量都被存儲在系統(tǒng)的工作空間內(nèi),即系統(tǒng)定義的一個存儲窗口變量的內(nèi)存空間。Who、whos命令用來顯示工作空間的變量clear命令用來清除工作空間的變量。
12/29/202259ApplicationofMatlabLanguage命令窗口(續(xù))【例4】計算半徑為5.2m的圓的周長和面積。命令窗口
(續(xù))數(shù)值顯示格式設(shè)置缺省顯示格式:簡潔的短(shortg)格式窗口命令及語法格式:format顯示格式關(guān)鍵字如:formatlong%15位數(shù)字顯示常見通用命令命令 含義clc 清除命令窗口的顯示內(nèi)容clear 清除Matlab工作空間中保存的變量who或whos 顯示Matlab工作空間中的變量信息dir 顯示當前工作目錄的文件和子目錄清單cd 顯示或設(shè)置當前工作目錄Help 獲取在線幫助quit或exit 關(guān)閉/退出MATALB
12/29/202260ApplicationofMatlabLanguage命令窗口(續(xù))數(shù)值顯示格式設(shè)置12/26/202211A工作空間查看工作空間內(nèi)存變量,可以由who、whos。命名新變量。修改變量名刪除變量繪圖保存變量數(shù)據(jù)裝入數(shù)據(jù)
12/29/202261ApplicationofMatlabLanguage工作空間查看工作空間內(nèi)存變量,可以由who、whos。1歷史窗口歷史窗口:首先記錄每次啟動時間并記錄在命令窗口輸入命令,此次運行期間,輸入的所有命令被記錄為一組,并以此次啟動時間為標志。要清除歷史記錄,可以選擇Edit菜單中的ClearCommandHistory命令
12/29/202262ApplicationofMatlabLanguage歷史窗口歷史窗口:要清除歷史記錄,可以選擇Edit菜單中的C當前目錄窗口和搜索路徑當前目錄窗口:指Matlab運行時的工作目錄。(dir)只有在當前目錄和搜索路徑下的文件、函數(shù)才可以被運行和調(diào)用。如果沒有特殊指明,數(shù)據(jù)文件也將存放在當前目錄下;用戶可以將自己的工作目錄設(shè)置成當前目錄,從而使得所有操作都在當前目錄中進行。(cd)
12/29/202263ApplicationofMatlabLanguage當前目錄窗口和搜索路徑當前目錄窗口:指Matlab運行時的工獲取在線幫助MATLAB提供的幫助信息有兩類簡單純文本幫助信息helplookfor(條件比較寬松)例:inverse窗口式綜合幫助信息(文字、公式、圖形)dochelpwin
12/29/202264ApplicationofMatlabLanguage獲取在線幫助MATLAB提供的幫助信息有兩類12/26數(shù)值表示、變量及表達式數(shù)值的記述
Matlab的數(shù)只采用習慣的十進制表示,可以帶小數(shù)點和負號;其缺省的數(shù)據(jù)類型為雙精度浮點型(format)(double)。例如:3-100.0011.3e101.256e-6變量命令規(guī)則變量名、函數(shù)名對字母的大小寫是敏感的。如myVar與myvar表示兩個不同的變量。變量名第一個字母必須是英文字母。變量名可以包含英文字母、下劃線和數(shù)字。變量名不能包含空格、標點。變量名最多可包含63個字符(6.5及以后的版本)。
12/29/202265ApplicationofMatlabLanguage數(shù)值表示、變量及表達式數(shù)值的記述12/26/202216A數(shù)值表示、變量及表達式(續(xù))Matlab預定義的變量變量名意義ans最近的計算結(jié)果的變量名epsMATLAB定義的正的極小值=2.2204e-16pi圓周率πinf∞值,無限大i或j虛數(shù)單元,sqrt(-1)NaN非數(shù),0/0、∞/∞〖說明〗每當MATLAB啟動完成,這些變量就被產(chǎn)生。MATLAB中,被0除不會引起程序中斷,給出報警的同時用inf或NaN給出結(jié)果。用戶只能臨時覆蓋這些預定義變量的值,Clear或重啟MATLAB可恢復其值。
12/29/202266ApplicationofMatlabLanguage數(shù)值表示、變量及表達式(續(xù))Matlab預定義的變量變量名數(shù)值表示、變量及表達式
(續(xù))運算符和表達式運算數(shù)學表達式MATLAB運算符MATLAB表達式加a+b+a+b減a-b-a-b乘axb*a*b除a/b或a\b/或\a/b或a\b冪^a^b〖說明〗Matlab用“\”a的逆和”/”分別表示“左除”和“右除”。對標量而言,兩者沒有區(qū)別。對矩陣產(chǎn)生不同影響。MATLAB表達式的書寫規(guī)則與“手寫方式”幾乎完全相同。表達式按與常規(guī)相同的優(yōu)先級自左至右執(zhí)行運算。優(yōu)先級:指數(shù)運算級別最高,乘除次之,加減最低。括號改變運算的次序。
12/29/202267ApplicationofMatlabLanguage數(shù)值表示、變量及表達式(續(xù))運算符和表達式運算數(shù)學表達式MMatlab矩陣(數(shù)組)的表示數(shù)組的概念一維數(shù)組變量的創(chuàng)建二維數(shù)組變量的創(chuàng)建
12/29/202268ApplicationofMatlabLanguageMatlab矩陣(數(shù)組)的表示數(shù)組的概念12/26/202.數(shù)組(array)的概念數(shù)組定義:按行(row)和列(column)順序排列的實數(shù)或復數(shù)的有序集,被稱為數(shù)組。數(shù)組中的任何一個數(shù)都被稱為這個數(shù)組的元素,由其所在的行和列標識,這個標識也稱為數(shù)組元素的下標或索引。Matlab將標量視為1×1的數(shù)組。
12345222232425332333435442434445a(3,4)=34rowisfirsta=
12/29/202269ApplicationofMatlabLanguage.數(shù)組(array)的概念數(shù)組定義:12345222232數(shù)組的分類一維數(shù)組,也稱為向量(vector)。行向量(rowvector)、列向量(columnvector)。二維數(shù)組(矩陣matrix)。有效矩陣:每行元素的個數(shù)必須相同,每列元素的個數(shù)也必須相同。數(shù)組(array)的概念
12/29/202270ApplicationofMatlabLanguage數(shù)組的分類數(shù)組(array)的概念12/26/202221數(shù)組(array)的概念(續(xù))行向量列向量a(2,1)=3a(1,2)=2b(3)=3c(2)=2
12/29/202271ApplicationofMatlabLanguage數(shù)組(array)的概念(續(xù))行向量列向量a(2,1)=3創(chuàng)建一維數(shù)組變量第一種方法:使用方括號“[]”操作符【例5】創(chuàng)建數(shù)組(行向量)a=[13pi]>>a=[13pi]%ora=[1,3,pi]
a=1.00003.00003.1416向量元素間用空格或英文的逗點“,”分開。第二種方法:使用冒號“:”操作符【例6】創(chuàng)建以1~10順序排列整數(shù)為元素的行向量b。>>b=1:10b=12345678910
12/29/202272ApplicationofMatlabLanguage創(chuàng)建一維數(shù)組變量第一種方法:使用方括號“[]”操作符12創(chuàng)建一維數(shù)組變量(續(xù))列向量的創(chuàng)建使用方括號“[]”操作符,使用分號“;”分割行?!纠?】鍵入并執(zhí)行x=[1;2;3]X=123
12/29/202273ApplicationofMatlabLanguage創(chuàng)建一維數(shù)組變量(續(xù))列向量的創(chuàng)建12/26/202224創(chuàng)建一維數(shù)組變量
(續(xù))一旦被創(chuàng)建,變量就被存儲在工作空間,可以通過“Workspace”窗口或在“CommandWindow”執(zhí)行“whos”命令察看。操作一:使用“Workspace”窗口察看變量操作二:使用“whos”命令察看變量
12/29/202274ApplicationofMatlabLanguage創(chuàng)建一維數(shù)組變量(續(xù))一旦被創(chuàng)建,變量就被存儲在工作空間,創(chuàng)建二維數(shù)組變量第一種方法:使用方括號“[]”操作符使用規(guī)則數(shù)組元素必須在“[]”內(nèi)鍵入;行與行之間須用分號“;”間隔,也可以在分行處用回車鍵間隔;行內(nèi)元素用空格或逗號“,”間隔?!纠?】鍵入并執(zhí)行a2=[123;456;789]a2=123456789【例9】鍵入并執(zhí)行a2=[1:3;4:6;7:9]%結(jié)果同上
12/29/202275ApplicationofMatlabLanguage創(chuàng)建二維數(shù)組變量第一種方法:使用方括號“[]”操作符12創(chuàng)建二維數(shù)組變量(續(xù))第二種方法:函數(shù)方法函數(shù)ones(生成全1矩陣)、zeros(生成全0矩陣)、
“helpelmat”獲得基本的矩陣生成和操作函數(shù)列表【例10】創(chuàng)建全1的3x3數(shù)組。>>ones(3)【例11】創(chuàng)建全1的3x4數(shù)組。>>ones(3,4)
12/29/202276ApplicationofMatlabLanguage創(chuàng)建二維數(shù)組變量(續(xù))第二種方法:函數(shù)方法12/26/20數(shù)組元素的標識與尋訪數(shù)組元素的標識“全下標(index)”標識經(jīng)典數(shù)學教科書采用“全下標”標識法:每一維對應一個下標。如對于二維數(shù)組,用“行下標和列下標”標識數(shù)組的元素,a(2,3)就表示二維數(shù)組a的“第2行第3列”的元素。對于一維數(shù)組,用一個下標即可,b(2)表示一維數(shù)組b的第2個元素,無論b是行向量還是列向量。
12/29/202277ApplicationofMatlabLanguage數(shù)組元素的標識與尋訪數(shù)組元素的標識12/26/202228數(shù)組的算術(shù)運算MATLAB數(shù)組支持線性代數(shù)中所有的矩陣運算。建立特有的數(shù)組運算符,如:“.*”、“./”等。
MATLAB數(shù)組運算符列表運算 運算符 含義說明
加 +相應元素相加減 - 相應元素相減乘 * 矩陣乘法點乘 .* 相應元素相乘冪 ^ 矩陣冪運算點冪 .^ 相應元素進行冪運算左除或右除 \或/ 矩陣左除或右除左點除或右點除.\或./ A的元素被B的對應元素除
12/29/202278ApplicationofMatlabLanguage數(shù)組的算術(shù)運算MATLAB數(shù)組支持線性代數(shù)中所有的矩陣運算。算術(shù)運算(續(xù))【例12】點冪“.^”舉例>>a=1:6a=123456>>a=a.^2a=149162536
12/29/202279ApplicationofMatlabLanguage算術(shù)運算(續(xù))【例12】點冪“.^”舉例12/26/2數(shù)據(jù)分析與統(tǒng)計最大值和最小值
MATLAB提供的求數(shù)據(jù)序列的最大值和最小值的函數(shù)分別為max和min,兩個函數(shù)的調(diào)用格式和操作過程類似。
1、求向量的最大值和最小值
(1)y=max(X):返回向量X的最大值存入y,如果X中包含復數(shù)元素,則按模取最大值;
(2)[y,I]=max(X):返回向量X的最大值存入y,最大值的序號存入I,如果X中包含復數(shù)元素,則按模取最大值。
12/29/202280ApplicationofMatlabLanguage數(shù)據(jù)分析與統(tǒng)計最大值和最小值12/26/202231Ap【例13】求向量的最大值>>x=[-43,72,9,16,23,47];>>y=max(x)%求向量x中的最大值y=72>>[y,l]=max(x)%求向量x中的最大值及其該元素的位置y=72l=2
12/29/202281ApplicationofMatlabLanguage【例13】求向量的最大值12/26/202232Appli數(shù)據(jù)分析與統(tǒng)計2.求矩陣的最大值和最小值求矩陣A的最大值的函數(shù)有3種調(diào)用格式,分別是:(1)max(A):返回一個行向量,向量的第i個元素是矩陣A的第i列上的最大值;(2)[Y,U]=max(A):返回行向量Y和U,Y向量記錄A的每列的最大值,U向量記錄每列最大值的行號;
12/29/202282ApplicationofMatlabLanguage數(shù)據(jù)分析與統(tǒng)計2.求矩陣的最大值和最小值12/26/20【例14】求矩陣的最大值>>x=[-43,72,9;16,23,47];>>y=max(x)%求矩陣x中每列的最大值y=167247>>[y,l]=max(x)%求矩陣x中每列的最大值及其該元素的位置y=
167247l=212
12/29/202283ApplicationofMatlabLanguage【例14】求矩陣的最大值12/26/202234Appli數(shù)據(jù)分析與統(tǒng)計平均值
求數(shù)據(jù)序列平均值的函數(shù)是mean。函數(shù)的調(diào)用格式為:mean(X):返回向量X的算術(shù)平均值。mean(A):返回一個行向量,其第i個元素是A的第i列的算術(shù)平均值。
12/29/202284ApplicationofMatlabLanguage數(shù)據(jù)分析與統(tǒng)計平均值12/26/202235Applic二維曲線繪圖的基本操作plot指令的基本調(diào)用格式(1)plot(x)x為向量時,以該元素的下標為橫坐標、元素值為縱坐標繪出曲線(2)plot(x,y)x、y為同維數(shù)組時,繪制以x、y元素為橫縱坐標的曲線
12/29/202285ApplicationofMatlabLanguage二維曲線繪圖的基本操作plot指令的基本調(diào)用格式12/2例14使用直角坐標系在[0,2π]區(qū)間內(nèi),繪制曲線x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)
12/29/202286ApplicationofMatlabLanguage例14使用直角坐標系在[0,2π]區(qū)間內(nèi),繪制曲線12/2例15使用參數(shù)方程繪制曲線繪制曲線t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).^2;plot(x,y)
12/29/202287ApplicationofMatlabLanguage例15使用參數(shù)方程繪制曲線繪制曲線12/26/202238Matlab命令的執(zhí)行方式交互式命令執(zhí)行方式(命令窗口)
逐條輸入,逐條執(zhí)行,操作簡單、直觀,但速度慢,執(zhí)行過程不能保留。M文件的程序執(zhí)行方式
將命令編成程序存儲在一個文件中(M文件),依次運行文件中的命令,可以重復進行。
12/29/202288ApplicationofMatlabLanguageMatlab命令的執(zhí)行方式交互式命令執(zhí)行方式(命令窗口)1M文件的分類用Matlab語言編寫的程序,稱為M文件。
是由若干Matlab命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程建設(shè)項目承包合同
- 2025年個人停車位租賃合同經(jīng)典版(三篇)
- 2025年專業(yè)技術(shù)開發(fā)委托合同(2篇)
- 2025年不銹鋼水箱購銷合同范文(2篇)
- 2025年高品質(zhì)鋁合金門窗勞務分包與售后服務合同2篇
- 2025年led高亮買賣合同(2篇)
- 2025年石棉水泥管項目可行性研究報告
- 2025年上海勞務派遣合同樣本(2篇)
- 2025年專業(yè)版勞動合同(三篇)
- 軟件銷售合同簡單范本
- 2024年關(guān)愛留守兒童工作總結(jié)
- GB/T 45092-2024電解水制氫用電極性能測試與評價
- 《算術(shù)平方根》課件
- DB32T 4880-2024民用建筑碳排放計算標準
- 2024-2024年上海市高考英語試題及答案
- 注射泵管理規(guī)范及工作原理
- 山東省濟南市2023-2024學年高二上學期期末考試化學試題 附答案
- 大唐電廠采購合同范例
- 國潮風中國風2025蛇年大吉蛇年模板
- GB/T 18724-2024印刷技術(shù)印刷品與印刷油墨耐各種試劑性的測定
- IEC 62368-1標準解讀-中文
評論
0/150
提交評論