第1講Matlab語言及其應用教學課件_第1頁
第1講Matlab語言及其應用教學課件_第2頁
第1講Matlab語言及其應用教學課件_第3頁
第1講Matlab語言及其應用教學課件_第4頁
第1講Matlab語言及其應用教學課件_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學習Matlab的意義在歐美各高等學校,Matlab成為線性代數(shù)、自動控制理論、數(shù)字信號處理、時間序列分析、動態(tài)系統(tǒng)仿真、圖像處理等諸多課程的基本教學工具,成為本科生、碩士生和博士生的必須掌握的基本技能。在設計研究單位和工業(yè)部門,Matlab已被廣泛地用于研究和解決各種具體的工程問題??梢灶A見,Matlab將在我國科學研究和工程應用中發(fā)揮越來越大的作用。10/9/20197/23/20231ApplicationofMatlabLanguage

講授MATLAB語言基礎入門知識,介紹MATLAB產品的體系、MATLAB桌面工具的使用方法,重點介紹MATLAB的數(shù)據(jù)可視化、數(shù)值計算的基本步驟以及如何使用MATLAB語言編寫整潔、高效、規(guī)范的程序。并涉及到一些具體的專業(yè)應用工具箱(如:信號處理工具箱、圖像處理工具箱等)。通過本課程的學習,了解、熟悉、掌握MATLAB的基本編程方法,并具有初步的利用計算機處理、解決實際問題的能力,為進一步學習后續(xù)的專業(yè)課程做好準備。主要內容10/9/20197/23/20232ApplicationofMatlabLanguage2MATLAB的桌面環(huán)境及入門知識啟動與退出MATLAB命令窗口及使用數(shù)值表示、變量、表達式命令歷史窗口工作空間10/9/20197/23/20233ApplicationofMatlabLanguage2.1啟動與退出MATLAB啟動MATLAB直接用鼠標雙擊桌面上MATLAB圖標或Windows桌面的“開始”—〉“所有程序”—〉“MATLAB”—〉“MATLAB”。退出MATLAB關閉MATLAB桌面在命令窗口執(zhí)行quit或exit命令MATLAB缺省桌面(見下頁)10/9/20197/23/20234ApplicationofMatlabLanguage菜單欄工具欄文件編輯窗口工作空間歷史命令窗口Start菜單命令窗口命令提示符2.1啟動與退出MATLAB(續(xù))10/9/20197/23/20235ApplicationofMatlabLanguage2.2命令窗口的使用激活命令窗口。“>>”與閃爍的光標一起表明系統(tǒng)就緒,等待輸入。命令窗口脫離MATLAB桌面。簡單計算【例2.2-1】計算(1)在MATLAB命令窗口輸入以下內容:>>(12+2*(7-4))/3^2(2)按【Enter】鍵,指令執(zhí)行。(3)返回的計算結果:ans=2

10/9/20197/23/20236ApplicationofMatlabLanguage2.2命令窗口(續(xù))〖說明〗在命令窗口【Enter】鍵提交命令執(zhí)行。Matlab所用運算符(如+、-、^等)是各種計算程序中常見的。計算結果中的“ans”是英文“answer”的一種縮寫,其含義就是“運算答案”。ans是Matlab的一個預定義變量。10/9/20197/23/20237ApplicationofMatlabLanguage2.2命令窗口(續(xù))簡單計算(續(xù))【例2.2-2】計算sin(45?)>>sin(45*pi/180)Matalb中正弦函數(shù)sin就是常見的正弦函數(shù)。它的參數(shù)值是以“弧度”為單位的。pi也是Matalb的預定義變量。pi=3.14159…Matlab對字母大小寫是敏感的?!纠?.2-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.278110/9/20197/23/20238ApplicationofMatlabLanguage2.2命令窗口

(續(xù))“clc”清除窗口顯示內容的命令?!纠?.2-4】計算的值。

>>y=2*sin(0.3*pi)/(1+sqrt(5))y=0.5000【例2.2-5】計算的值。

>>y=2*cos(0.3*pi)/(1+sqrt(5))y=0.3633命令行編輯“↑”鍵調回已輸入過命令。修改。10/9/20197/23/20239ApplicationofMatlabLanguage2.2命令窗口

(續(xù))【例2.2-5】計算半徑為5.2m的圓的周長和面積。>>radius=5.2;%圓的半徑>>area=pi*5.2^2,

circle_len=2*pi*5.2area=84.9487circle_len=32.6726以上兩例,命令行中用到了等號“=”。計算結果不再賦給“ans”,而是賦給用戶指定的變量y、area、circle_len。無論是預定義變量還是用戶自定義變量都被存儲在系統(tǒng)的工作空間內,即系統(tǒng)定義的一個存儲窗口變量的內存空間。Who、whos命令用來顯示工作空間的變量clear命令用來清除工作空間的變量。10/9/20197/23/202310ApplicationofMatlabLanguage2.2命令窗口(續(xù))>>who>>whosYourvariablesare:anscircle_lenyarearadius

NameSizeBytesClassans1x18doublearrayarea1x18doublearraycircle_len1x18doublearrayradius1x18doublearrayy1x18doublearrayGrandtotalis5elementsusing40bytes10/9/20197/23/202311ApplicationofMatlabLanguage2.2命令窗口

(續(xù))>>cleary>>whoYourvariablesare:anscircle_lenarearadius

>>clearansarea>>whosYourvariablesare:NameSizeBytesClasscircle_len1x18doublearrayradius1x18doublearrayGrandtotalis2elementsusing16bytes10/9/20197/23/202312ApplicationofMatlabLanguage2.2命令窗口

(續(xù))數(shù)值顯示格式設置缺省顯示格式:簡潔的短(shortg)格式窗口命令及語法格式:format顯示格式關鍵字如:formatlong%15位數(shù)字顯示常見通用命令命令 含義clc 清除命令窗口的顯示內容clear 清除Matlab工作空間中保存的變量who或whos 顯示Matlab工作空間中的變量信息dir 顯示當前工作目錄的文件和子目錄清單cd 顯示或設置當前工作目錄type 顯示指定m文件的內容help或doc 獲取在線幫助quit或exit 關閉/推出MATALB10/9/20197/23/202313ApplicationofMatlabLanguage2.3工作空間查看工作空間內存變量,可以由who、whos。命名新變量。修改變量名刪除變量繪圖保存變量數(shù)據(jù)裝入數(shù)據(jù)10/9/20197/23/202314ApplicationofMatlabLanguage2.4歷史窗口歷史窗口:首先記錄每次啟動時間并記錄在命令窗口輸入命令,此次運行期間,輸入的所有命令被記錄為一組,并以此次啟動時間為標志。使用歷史窗口:可以查看命令窗口輸入過的命令或語句可以選擇一條或多條命令執(zhí)行拷貝、執(zhí)行、創(chuàng)建M文件等。要清除歷史記錄,可以選擇Edit菜單中的ClearCommandHistory命令10/9/20197/23/202315ApplicationofMatlabLanguage2.5當前目錄窗口和搜索路徑當前目錄窗口:指Matlab運行時的工作目錄。只有在當前目錄和搜索路徑下的文件、函數(shù)才可以被運行和調用。如果沒有特殊指明,數(shù)據(jù)文件也將存放在當前目錄下;用戶可以將自己的工作目錄設置成當前目錄,從而使得所有操作都在當前目錄中進行。10/9/20197/23/202316ApplicationofMatlabLanguage搜索路徑:指Matlab執(zhí)行過程中對變量、函數(shù)和文件進行搜索的路徑。在File菜單中選擇SetPath命令或在命令窗口輸入pathtool命令,出現(xiàn)搜索路徑設置對話框:!修改完搜索路徑后,需要進行保存。10/9/20197/23/202317ApplicationofMatlabLanguage【功能演示-1】求方程的全部根。p=[2,0,-3,71,-9,13];%建立多項式系數(shù)向量x=roots(p);求根x=-3.49141.6863+2.6947i1.6863-2.6947i0.0594+0.4251i0.0594-0.4251i10/9/20197/23/202318ApplicationofMatlabLanguage【功能演示-2】求解線性方程組a=[2,3,-1;8,2,3;45,3,9];%建立系數(shù)矩陣ab=[2;4;23];%建立列向量bx=inv(a)*bx=0.55310.2051-0.278410/9/20197/23/202319ApplicationofMatlabLanguage符號計算symsxyz

%建立符號變量[x,y,z]=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23)x=151/273y=8/39z=-76/27310/9/20197/23/202320ApplicationofMatlabLanguage【功能演示-3】求解定積分

求解I=quad('x.*log(1+x)',0,1)ans=0.250或symsxnt(x*log(1+x),0,1)ans=1/410/9/20197/23/202321ApplicationofMatlabLanguage【功能演示-4】多項式曲線擬合考慮如下x-y一組實驗數(shù)據(jù):x=[1,2,3,4,5,6,7,8,9,10]y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2]注:一次多項式擬合:p1=polyfit(x,y,1)三次多項式擬合:p3=polyfit(x,y,3)plot原始數(shù)據(jù)、一次擬合曲線和三次擬合曲線x2=1:0.1:10;y1=polyval(p1,x2)y3=polyval(p3,x2)plot(x,y,’*’,x2,y1,‘:’,x2,y3)10/9/20197/23/202322ApplicationofMatlabLanguage擬合曲線圖由圖可見,三次擬合結果較好。10/9/20197/23/202323ApplicationofMatlabLanguage2.3數(shù)值表示、變量及表達式數(shù)值的記述

Matlab的數(shù)只采用習慣的十進制表示,可以帶小數(shù)點和負號;其缺省的數(shù)據(jù)類型為雙精度浮點型(double)。例如:3-100.0011.3e101.256e-6變量命令規(guī)則變量名、函數(shù)名對字母的大小寫是敏感的。如myVar與myvar表示兩個不同的變量。變量名第一個字母必須是英文字母。變量名可以包含英文字母、下劃線和數(shù)字。變量名不能包含空格、標點。變量名最多可包含63個字符(6.5及以后的版本)。10/9/20197/23/202324ApplicationofMatlabLanguage2.3數(shù)值表示、變量及表達式(續(xù))Matlab預定義的變量變量名意義ans最近的計算結果的變量名epsMATLAB定義的正的極小值=2.2204e-16pi圓周率πinf∞值,無限大i或j虛數(shù)單元,sqrt(-1)NaN非數(shù),0/0、∞/∞〖說明〗每當MATLAB啟動完成,這些變量就被產生。MATLAB中,被0除不會引起程序中斷,給出報警的同時用inf或NaN給出結果。用戶只能臨時覆蓋這些預定義變量的值,Clear或重啟MATLAB可恢復其值。10/9/20197/23/202325ApplicationofMatlabLanguage2.3數(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用“\”和”/”分別表示“左除”和“右除”。對標量而言,兩者沒有區(qū)別。對矩陣產生不同影響。MATLAB表達式的書寫規(guī)則與“手寫方式”幾乎完全相同。表達式按與常規(guī)相同的優(yōu)先級自左至右執(zhí)行運算。優(yōu)先級:指數(shù)運算級別最高,乘除次之,加減最低。括號改變運算的次序。10/9/20197/23/202326ApplicationofMatlabLanguage2.3數(shù)值表示、變量及表達式

(續(xù))復數(shù)及其運算MATLAB中復數(shù)的表達:z=a+bi,其中a、b為實數(shù)。MATLAB把復數(shù)作為一個整體,象計算實數(shù)一樣計算復數(shù)?!纠?.3-1】復數(shù)z1=3+4i,z2=1+2i,z3=計算>>z1=3+4*i,z2=1+2*i,z3=2*exp(i*pi/6),z=z1*z2/z3>>z_real=real(z),z_image=imag(z),>>z_angle=angle(z),z_length=abs(z),10/9/20197/23/202327ApplicationofMatlabLanguageMatlab數(shù)據(jù)及其運算

Matlab數(shù)據(jù)類型非常豐富,除數(shù)值型、字符型等基本數(shù)據(jù)類型外,還有結構體、單元等更為復雜的數(shù)據(jù)類型。各種數(shù)據(jù)類型都以矩陣形式存在,矩陣是Matlab最基本的數(shù)據(jù)對象,并且矩陣的運算是定義在復數(shù)域上的。7/23/2023282.2Matlab矩陣(數(shù)組)的表示數(shù)組的概念一維數(shù)組變量的創(chuàng)建二維數(shù)組變量的創(chuàng)建數(shù)組元素的標識與尋訪數(shù)組運算多維數(shù)組10/9/20197/23/202329ApplicationofMatlabLanguage2.2.1.數(shù)組(array)的概念數(shù)組定義:

按行(row)和列(column)順序排列的實數(shù)或復數(shù)的有序集,被稱為數(shù)組。數(shù)組中的任何一個數(shù)都被稱為這個數(shù)組的元素,由其所在的行和列標識,這個標識也稱為數(shù)組元素的下標或索引。Matlab將標量視為1×1的數(shù)組。對m行、n列的2維數(shù)組a:計為m×n的數(shù)組a;*行標識、列標識均從1開始;行標識從上到下遞增;列標識從左到右遞增。12345223453234542345a(3,4)=34rowisfirsta=10/9/20197/23/202330ApplicationofMatlabLanguage數(shù)組的分類一維數(shù)組,也稱為向量(vector)。行向量(rowvector)、列向量(columnvector)。二維數(shù)組(矩陣matrix)。多維數(shù)組。有效矩陣:每行元素的個數(shù)必須相同,每列元素的個數(shù)也必須相同。2.2.1.數(shù)組(array)的概念10/9/20197/23/202331ApplicationofMatlabLanguage2.2.1、數(shù)組(array)的概念(續(xù))行向量列向量a(2,1)=3a(1,2)=2b(3)=3c(2)=210/9/20197/23/202332ApplicationofMatlabLanguage2.2.2、創(chuàng)建一維數(shù)組變量第一種方法:使用方括號“[]”操作符【例2-1】創(chuàng)建數(shù)組(行向量)a=[13pi3+5i]>>a=[13pi3+5*i]%ora=[1,3,pi,3+5*i]

a=1.00003.00003.14163.0000+5.0000i所有的向量元素必須在操作符“[]”之內;向量元素間用空格或英文的逗點“,”分開。第二種方法:使用冒號“:”操作符【例2-2】創(chuàng)建以1~10順序排列整數(shù)為元素的行向量b。>>b=1:10b=1234567891010/9/20197/23/202333ApplicationofMatlabLanguage2.2.2、創(chuàng)建一維數(shù)組變量(續(xù))【例2-3】鍵入并執(zhí)行c=1:2:10和d=1:2:9>>c=1:2:10c=13579>>d=1:2:9d=13579利用冒號“:”操作符創(chuàng)建行向量的基本語法格式:x=Start:Increment:EndStart表示新向量x的第一個元素;新向量x的最后一個元素不能大于End;Increment可正可負,若負,則必須Start>End;若正,則必須Start<End,否則創(chuàng)建的為空向量。若Increment=1,則可簡寫為:x=Start:End。10/9/20197/23/202334ApplicationofMatlabLanguage2.2.2、創(chuàng)建一維數(shù)組變量(續(xù))第三種方法:利用函數(shù)linspace函數(shù)linspace的基本語法x=linspace(x1,x2,n)該函數(shù)生成一個由n個元素組成的行向量;x1為其第一個元素;x2為其最后一個元素;x1、x2之間元素的間隔=(x2-x1)/(n-1)。如果忽略參數(shù)n,則系統(tǒng)默認生成100個元素的行向量?!纠?-4】鍵入并執(zhí)行x=linspace(1,2,5)x=1.00001.25001.50001.75002.000010/9/20197/23/202335ApplicationofMatlabLanguage2.2.2、創(chuàng)建一維數(shù)組變量(續(xù))第四種方法:利用函數(shù)logspace列向量的創(chuàng)建使用方括號“[]”操作符,使用分號“;”分割行?!纠?-5】鍵入并執(zhí)行x=[1;2;3]X=123使用冒號操作符【例2-6】鍵入并執(zhí)行x=(1:3)’%“’”表示矩陣的轉置10/9/20197/23/202336ApplicationofMatlabLanguage2.2.2、創(chuàng)建一維數(shù)組變量

(續(xù))創(chuàng)建數(shù)組變量的一般方法創(chuàng)建變量的賦值語句的一般格式var=expressionvar為變量名expression為MATLAB合法表達式可以是單獨的常數(shù)值或數(shù)值數(shù)組;也可以由常數(shù)值、其他變量(部分或全部)、數(shù)值數(shù)組和運算符(+、-等)構成?!纠?-7】鍵入并執(zhí)行a=[01+6];b=[a67];c=[6a7];d=[6a7a];10/9/20197/23/202337ApplicationofMatlabLanguage2.2.2、創(chuàng)建一維數(shù)組變量

(續(xù))一旦被創(chuàng)建,變量就被存儲在工作空間,可以通過“Workspace”窗口或在“CommandWindow”執(zhí)行“whos”命令察看。操作一:使用“Workspace”窗口察看變量操作二:使用“whos”命令察看變量10/9/20197/23/202338ApplicationofMatlabLanguage2.2.3、創(chuàng)建二維數(shù)組變量第一種方法:使用方括號“[]”操作符使用規(guī)則數(shù)組元素必須在“[]”內鍵入;行與行之間須用分號“;”間隔,也可以在分行處用回車鍵間隔;行內元素用空格或逗號“,”間隔?!纠?-1】鍵入并執(zhí)行a2=[123;456;789]a2=123456789【例3-2】鍵入并執(zhí)行a2=[1:3;4:6;7:9]%結果同上10/9/20197/23/202339ApplicationofMatlabLanguage2.2.3、創(chuàng)建二維數(shù)組變量(續(xù))【例3-3】由向量構成二維數(shù)組。>>a=[123];b=[234];>>c=[a;b];>>c1=[ab];第二種方法:函數(shù)方法函數(shù)ones(生成全1矩陣)、zeros(生成全0矩陣)、reshape“helpelmat”獲得基本的矩陣生成和操作函數(shù)列表【例3-4】創(chuàng)建全1的3x3數(shù)組。>>ones(3)【例3-5】創(chuàng)建全1的3x4數(shù)組。>>ones(3,4)10/9/20197/23/202340ApplicationofMatlabLanguage2.2.3、創(chuàng)建二維數(shù)組變量(續(xù))【例3-5】reshape的使用演示>>a=-4:4a=-4-3-2-101234>>b=reshape(a,3,3)b=-4-12-303-214數(shù)組元素的排列順序,從上到下按列排列,先排第一列,然后第二列,…要求數(shù)組的元素總數(shù)不變。10/9/20197/23/202341ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪數(shù)組元素的標識“全下標(index)”標識經典數(shù)學教科書采用“全下標”標識法:每一維對應一個下標。如對于二維數(shù)組,用“行下標和列下標”標識數(shù)組的元素,a(2,3)就表示二維數(shù)組a的“第2行第3列”的元素。對于一維數(shù)組,用一個下標即可,b(2)表示一維數(shù)組b的第2個元素,無論b是行向量還是列向量?!皢蜗聵恕保╨inearindex)標識所謂“單下標”標識就是用一個下標來表明元素在數(shù)組的位置。對于二維數(shù)組,“單下標”編號:設想把二維數(shù)組的所有列,按先后順序首尾相接排成“一維長列”,然后自上往下對元素位置執(zhí)行編號。兩種“下標”標識的變換:sub2ind、ind2sub10/9/20197/23/202342ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪(續(xù))【例4-1】單下標的使用>>a=zeros(2,5);>>a(:)=-4:5a=-4-2024-3-1135注意數(shù)組的排列順序。10/9/20197/23/202343ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪(續(xù))元素與子數(shù)組的尋訪與賦值【例4-3】一維數(shù)組元素與子數(shù)組的尋訪與賦值>>a=linspace(1,10,5)a=1.00003.25005.50007.750010.0000>>a(3)%尋訪a的第3個元素ans=5.5000>>a([125])%尋訪a的第1、2、5個元素組成的子數(shù)組ans=1.00003.250010.000010/9/20197/23/202344ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪(續(xù))>>a(1:3)%尋訪前3個元素組成的子數(shù)組ans=1.00003.25005.5000>>a(3:-1:1)%由前3個元素倒序構成的子數(shù)組ans=5.50003.25001.0000>>a(3:end)ans=5.50007.750010.0000>>a(3:end-1)ans=5.50007.7500%第3個及其后所有元素構成的子數(shù)組函數(shù)end作為參數(shù)使用,返回最后一個元素的下標10/9/20197/23/202345ApplicationofMatlabLanguage>>a([12355321])ans=1.00003.25005.500010.000010.00005.50003.25001.0000數(shù)組元素可以被任意重復訪問,構成長度大于原數(shù)組的新數(shù)組。>>a(6)???Indexexceedsmatrixdimensions.下標值超出了數(shù)組的維數(shù),導致錯誤>>a(2.1)???Subscriptindicesmusteitherberealpositiveintegersorlogicals.下標值只能取正整數(shù)或邏輯值4、數(shù)組元素的標識與尋訪(續(xù))10/9/20197/23/202346ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪(續(xù))>>a(3)=0%修改數(shù)組a的第3元素值為0a=1.00003.250007.750010.0000>>a([25])=[11]a=1.00001.000007.75001.0000可以修改指定數(shù)組元素的值一次可以修改多個數(shù)組元素的值要修改的數(shù)組元素的個數(shù)應與送入數(shù)組的元素個數(shù)相同10/9/20197/23/202347ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪(續(xù))【例4-3】二維數(shù)組元素與子數(shù)組的尋訪與賦值>>a_2=zeros(2,4)%創(chuàng)建2x4的全0數(shù)組a_2=00000000>>a_2(:)=1:8a_2=13572468>>a_2([258])%單下標方式尋訪多個元素ans=258注意元素的排列順序10/9/20197/23/202348ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪(續(xù))>>a_2([258])=[102030]a_2gt;>a_2(:,[23])=ones(2)%雙下標方式尋訪并修改a_2=1117101130二維數(shù)組可以“單下標”方式或“全下標”方式訪問、賦值;“單下標”方式賦值時,等號兩邊涉及的元素個數(shù)必須相等;“全下標”方式賦值時,等號右邊數(shù)組的大小必須等于原數(shù)組中涉及元素構成的子數(shù)組的大小。10/9/20197/23/202349ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪(續(xù))>>a_2(:,end)ans=730>>a_2(:,end-1)ans=11>>a_2(:,end:-1:3)ans=71301>>a_2(end,:)ans=101130>>a_2(end,[2:4])ans=1130>>a_2([46])=6:7a_2=1117106730>>a_2(end,[2:end-1])

Whatistheresult?10/9/20197/23/202350ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪(續(xù))【例4-4】

size、length函數(shù)>>a=ones(4,6)*6>>m=size(a)>>len=length(a)>>b=1:5;>>length(b)>>c=b’>>length(c)

size函數(shù)返回變量的大小,即變量數(shù)組的行列數(shù)

length函數(shù)返回變量數(shù)組的最大維數(shù)10/9/20197/23/202351ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪(續(xù))雙下標到單下標的轉換【例4-5】

sub2ind函數(shù)-雙下標轉換為單下標>>A=[172418;222714;461320];>>A(:,:,2)=A-10>>A(2,1,2)>>sub2ind(size(A),2,1,2)>>A(14)10/9/20197/23/202352ApplicationofMatlabLanguage4、數(shù)組元素的標識與尋訪(續(xù))單下標到雙下標的轉換【例4-6】

ind2sub函數(shù)-雙下標轉換為單下標>>b=zeros(3);>>b(:)=1:9>>IND=[3456]>>[I,J]=ind2sub(size(b),IND)10/9/20197/23/202353ApplicationofMatlabLanguage5、多維數(shù)組多維數(shù)組的定義

在MATLAB的數(shù)據(jù)類型中,向量可視為一維數(shù)組,矩陣可視為二維數(shù)組,對于維數(shù)(Dimensions)超過2

的數(shù)組均可視為「多維數(shù)組」(MultidimesionalArrays,簡稱N-DArrays)。10/9/20197/23/202354ApplicationofMatlabLanguage5、多維數(shù)組(續(xù))將兩個二維(平面)數(shù)組疊在一起,就構成三維數(shù)組,第三維稱為「頁」(Page),如下圖所示:

(3,4)

(3,1) (3,2)(3,3)(2,4)(2,3)(2,2)(2,1)(1,4)(1,3)(1,2)(1,1)(1,1)(1,2)(1,3)(1,4)(2,1)(2,2)(2,3)(2,4)(3,1)(3,2)(3,3)(3,4)頁列頁行10/9/20197/23/202355ApplicationofMatlabLanguage5、多維數(shù)組(續(xù))三維數(shù)組,可對應至一個X-Y-Z三維立體坐標,如下圖所示:

Z(頁)Y(列)X(行)10/9/20197/23/202356ApplicationofMatlabLanguage5、多維數(shù)組(續(xù))三維數(shù)組元素的尋址:可以(行、列、頁)來確定。以維數(shù)為3×4×2的三維數(shù)組為例,其尋址方式如下圖所示:數(shù)組

A是三維數(shù)組,其中A(:,:,1)代表第一頁的二維數(shù)組,A(:,:,2)代表第二頁的二維數(shù)組。10/9/20197/23/202357ApplicationofMatlabLanguage5、多維數(shù)組(續(xù))多維數(shù)組的建立建立一個簡單的多維數(shù)組,可直接由MATLAB命令視窗內輸入(使用“[]”操作符)例:由兩個相同大小二維數(shù)組創(chuàng)建三維數(shù)組A(:,:,1)=[1025;4187;3263];A(:,:,2)=[3541;2621;4230]

A(:,:,1)=102541873263A(:,:,2)=354126214230

10/9/20197/23/202358ApplicationofMatlabLanguage5、多維數(shù)組(續(xù))執(zhí)行命令:whosA,得到如下結果:

NameSizeBytesClassA3x4x2192doublearrayGrandtotalis24elementsusing192bytes10/9/20197/23/202359ApplicationofMatlabLanguage6、數(shù)組的算術運算MATLAB數(shù)組支持線性代數(shù)中所有的矩陣運算。建立特有的數(shù)組運算符,如:“.*”、“./”等。

MATLAB數(shù)組運算符列表運算 運算符 含義說明

加 +相應元素相加減 - 相應元素相減乘 * 矩陣乘法點乘 .* 相應元素相乘冪 ^ 矩陣冪運算點冪 .^ 相應元素進行冪運算左除或右除 \或/ 矩陣左除或右除左點除或右點除.\或./ A的元素被B的對應元素除10/9/20197/23/202360ApplicationofMatlabLanguage6、算術運算(續(xù))

【例5-1】數(shù)組加減法>>a=zeros(2,3);>>a(:)=1:6;>>b=a+2.5b=3.50005.50007.50004.50006.50008.5000>>c=b-ac=2.50002.50002.50002.50002.50002.500010/9/20197/23/202361ApplicationofMatlabLanguage6、算術運算(續(xù))【例5-2】畫出y=1/(x+1)的函數(shù)曲線,x∈[0,100]。x=0:100;y=1./(x+1);plot(x,y);legend(‘y=1/(x+1)’);

10/9/20197/23/202362ApplicationofMatlabLanguage6、算術運算(續(xù))【例5-2】生成一個信號:x=sin(2*pi*t)+sin(4*pi*t)t=[0:199]./100;%采樣時間點%生成信號x=sin(2*pi*t)+sin(4*pi*t);plot(t,x);legend(‘x=sin(2*pi*t)+sin(4*pi*t)’);10/9/20197/23/202363ApplicationofMatlabLanguage6、算術運算(續(xù))10/9/20197/23/202364Applicat

溫馨提示

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

最新文檔

評論

0/150

提交評論