NO2-matlab數(shù)據(jù)及其運(yùn)算-3學(xué)時_第1頁
NO2-matlab數(shù)據(jù)及其運(yùn)算-3學(xué)時_第2頁
NO2-matlab數(shù)據(jù)及其運(yùn)算-3學(xué)時_第3頁
NO2-matlab數(shù)據(jù)及其運(yùn)算-3學(xué)時_第4頁
NO2-matlab數(shù)據(jù)及其運(yùn)算-3學(xué)時_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、MMATLABATLAB 語言程序設(shè)計Matlab Language Programming李永生李永生 講師講師生物信息教研室生物信息教研室分子生物學(xué)館分子生物學(xué)館106室室Email: 2022-7-4Matlab Language Programming2 第第2講講 Matlab數(shù)據(jù)及其運(yùn)算 MatlabMatlab數(shù)據(jù)類型非常豐富,除數(shù)據(jù)類型非常豐富,除數(shù)值型數(shù)值型、字符型字符型等基本數(shù)等基本數(shù)據(jù)類型外,還有據(jù)類型外,還有結(jié)構(gòu)體結(jié)構(gòu)體、單元單元等更為復(fù)雜的數(shù)據(jù)類型。等更為復(fù)雜的數(shù)據(jù)類型。各種數(shù)據(jù)類型都以矩陣形式存在,各種數(shù)據(jù)類型都以矩陣形式存在,矩陣矩陣是是MatlabMatlab最

2、基本的最基本的數(shù)據(jù)對象,并且矩陣的運(yùn)算是定義在數(shù)據(jù)對象,并且矩陣的運(yùn)算是定義在復(fù)數(shù)域復(fù)數(shù)域上的。上的。主要內(nèi)容2.1 2.1 數(shù)值表示、變量及表達(dá)式數(shù)值表示、變量及表達(dá)式2.2 Matlab2.2 Matlab矩陣矩陣( (數(shù)組數(shù)組) )的表示的表示2.32.3數(shù)組的算術(shù)運(yùn)算數(shù)組的算術(shù)運(yùn)算2.42.4關(guān)系運(yùn)算關(guān)系運(yùn)算2.52.5邏輯運(yùn)算邏輯運(yùn)算2.62.6數(shù)據(jù)分析與統(tǒng)計數(shù)據(jù)分析與統(tǒng)計 2022-7-4Matlab Language Programming3 2022-7-4Matlab Language Programming4 2.1 2.1 數(shù)值表示、變量及表達(dá)式數(shù)值表示、變量及表達(dá)式n

3、數(shù)值的記述數(shù)值的記述 MatlabMatlab的數(shù)值采用習(xí)慣的十進(jìn)制表示,可以帶小數(shù)點(diǎn)和的數(shù)值采用習(xí)慣的十進(jìn)制表示,可以帶小數(shù)點(diǎn)和負(fù)號負(fù)號; ;其缺省的數(shù)據(jù)類型為其缺省的數(shù)據(jù)類型為雙精度浮點(diǎn)型雙精度浮點(diǎn)型(doubledouble)。)。 例如:例如:3 -10 0.001 1.3e10 1.256e-63 -10 0.001 1.3e10 1.256e-6n 變量命令規(guī)則變量命令規(guī)則l 變量名、函數(shù)名對字母的大小寫是敏感的。變量名、函數(shù)名對字母的大小寫是敏感的。l 變量名變量名第一個字母必須是第一個字母必須是英文字母英文字母。l 變量名可以包含變量名可以包含英文字母、下劃線和數(shù)字英文字母、下

4、劃線和數(shù)字。l 變量名變量名不能包含空格、標(biāo)點(diǎn)不能包含空格、標(biāo)點(diǎn)。l 變量名最多可包含變量名最多可包含6363個個字符(字符(6.56.5及以后的版本)。及以后的版本)。 2022-7-4Matlab Language Programming5 2.1 2.1 數(shù)值表示、變量及表達(dá)式數(shù)值表示、變量及表達(dá)式 (續(xù))(續(xù))nMatlabMatlab預(yù)定義的變量預(yù)定義的變量變量名變量名意義意義ans最近的計算結(jié)果的變量名最近的計算結(jié)果的變量名epsMATLAB定義的正的極小值定義的正的極小值=2.2204e-16pi圓周率圓周率inf值,無限大值,無限大i或或j虛數(shù)單元,虛數(shù)單元,sqrt(-1)N

5、aN非數(shù),非數(shù),0/0、/ 說明說明l每當(dāng)每當(dāng)MATLABMATLAB啟動完成,這些變量就被產(chǎn)生。啟動完成,這些變量就被產(chǎn)生。lMATLABMATLAB中,被中,被0 0除不會引起程序中斷,給出報警的同時用除不會引起程序中斷,給出報警的同時用infinf或或NaNNaN給出結(jié)果。給出結(jié)果。l用戶只能臨時覆蓋這些預(yù)定義變量的值,用戶只能臨時覆蓋這些預(yù)定義變量的值,ClearClear或重啟或重啟MATLABMATLAB可恢可恢復(fù)其值。復(fù)其值。 2022-7-4Matlab Language Programming6 2.12.1數(shù)值表示、變量及表達(dá)式數(shù)值表示、變量及表達(dá)式 (續(xù))(續(xù))n運(yùn)算符和

6、表達(dá)式運(yùn)算符和表達(dá)式運(yùn)算運(yùn)算數(shù)學(xué)表達(dá)式數(shù)學(xué)表達(dá)式MATLAB運(yùn)算符運(yùn)算符MATLAB表達(dá)式表達(dá)式加加a+b+a+b減減a-b-a-b乘乘axb*a*b除除a/b或或ab/或或a/b或或ab冪冪abba說明說明lMatlabMatlab用用“ ”和和”/ /”分別表示分別表示“左除左除”和和“右除右除”。對標(biāo)量而言,。對標(biāo)量而言,兩者沒有區(qū)別。對矩陣產(chǎn)生不同影響。兩者沒有區(qū)別。對矩陣產(chǎn)生不同影響。lMATLABMATLAB表達(dá)式的書寫規(guī)則與表達(dá)式的書寫規(guī)則與“手寫方式手寫方式”幾乎完全相同。幾乎完全相同。l表達(dá)式按與常規(guī)相同的優(yōu)先級自左至右執(zhí)行運(yùn)算。表達(dá)式按與常規(guī)相同的優(yōu)先級自左至右執(zhí)行運(yùn)算。l

7、優(yōu)先級:指數(shù)運(yùn)算級別最高,乘除次之,加減最低。優(yōu)先級:指數(shù)運(yùn)算級別最高,乘除次之,加減最低。l括號改變運(yùn)算的次序。括號改變運(yùn)算的次序。 2022-7-4Matlab Language Programming7 2.1 2.1 數(shù)值表示、變量及表達(dá)式數(shù)值表示、變量及表達(dá)式 (續(xù))(續(xù))n復(fù)數(shù)及其運(yùn)算復(fù)數(shù)及其運(yùn)算nMATLABMATLAB中復(fù)數(shù)的表達(dá):中復(fù)數(shù)的表達(dá):z=a+bi,其中,其中a a、b b為實數(shù)。為實數(shù)。nMATLABMATLAB把復(fù)數(shù)作為一個整體,象計算實數(shù)一樣計算把復(fù)數(shù)作為一個整體,象計算實數(shù)一樣計算復(fù)數(shù)。復(fù)數(shù)?!纠?.3-1】復(fù)數(shù)z1=3+4i,z2=1+2i, z3= 計算

8、62ie123z zzzz1=3+4*i, z2=1+2*i, z3=2*exp(i*pi/6), z=z1*z2/z3z_real=real(z), z_image=imag(z),z_angle=angle(z), z_length=abs(z),n 數(shù)據(jù)類型 matlab支持的數(shù)據(jù)類型有數(shù)值類型和邏輯類型,其中數(shù)值類型包括整數(shù)、浮點(diǎn)數(shù)及復(fù)數(shù)。n 注意運(yùn)算過程中數(shù)據(jù)溢出的問題。例: x=int8(100); y=int8(90); z=x+y z=127 2022-7-4Matlab Language Programming8 2.1 2.1 數(shù)值表示、變量及表達(dá)式數(shù)值表示、變量及表達(dá)式

9、(續(xù))(續(xù)) 2022-7-4Matlab Language Programming9 2.2 Matlab2.2 Matlab矩陣矩陣( (數(shù)組數(shù)組) )的表示的表示n 數(shù)組的概念數(shù)組的概念n 一維數(shù)組變量的創(chuàng)建一維數(shù)組變量的創(chuàng)建n 二維數(shù)組變量的創(chuàng)建二維數(shù)組變量的創(chuàng)建n 數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪n 數(shù)組運(yùn)算數(shù)組運(yùn)算n 多維數(shù)組多維數(shù)組 2022-7-4Matlab Language Programming10 2.2.1. 2.2.1. 數(shù)組數(shù)組(array)(array)的概念的概念n 數(shù)組定義:數(shù)組定義: 按按行行(row)和和列列(column)順序排列的實數(shù)或復(fù)數(shù)的

10、有序順序排列的實數(shù)或復(fù)數(shù)的有序集,被稱為集,被稱為數(shù)組數(shù)組。 數(shù)組中的任何一個數(shù)都被稱為這個數(shù)組的數(shù)組中的任何一個數(shù)都被稱為這個數(shù)組的元素元素,由其,由其所在的行和列標(biāo)識,這個標(biāo)識也稱為數(shù)組元素的所在的行和列標(biāo)識,這個標(biāo)識也稱為數(shù)組元素的下標(biāo)下標(biāo)或索引或索引。Matlab將將標(biāo)量標(biāo)量視為視為11的數(shù)組。的數(shù)組。 對對m行、行、n列的列的2維數(shù)組維數(shù)組a:計為計為mn的數(shù)組的數(shù)組a;*行標(biāo)識、列標(biāo)識均從行標(biāo)識、列標(biāo)識均從1開始;開始;行標(biāo)識從上到下遞增;行標(biāo)識從上到下遞增;列標(biāo)識從左到右遞增。列標(biāo)識從左到右遞增。12345222232425332333435442434445a(3, 4)=34

11、 row is firsta= 2022-7-4Matlab Language Programming11 n 數(shù)組的分類數(shù)組的分類n 一維數(shù)組一維數(shù)組,也稱為向量,也稱為向量(vector) 。 行向量行向量(row vector)、列向量、列向量(column vector)。n 二維數(shù)組二維數(shù)組(矩陣矩陣matrix)。n 多維數(shù)組多維數(shù)組。有效矩陣有效矩陣:每行元素的個數(shù)必須相同,每列:每行元素的個數(shù)必須相同,每列元素的個數(shù)也必須相同。元素的個數(shù)也必須相同。2.2.12.2.1數(shù)組數(shù)組(array)(array)的概念的概念 2022-7-4Matlab Language Progra

12、mming12 2.2.12.2.1數(shù)組數(shù)組(array)(array)的概念的概念 (續(xù))(續(xù))行向量行向量列向量列向量a(2,1)=3a(1,2)=2b(3)=3c(2)=2 2022-7-4Matlab Language Programming13 2.2.22.2.2創(chuàng)建一維數(shù)組變量創(chuàng)建一維數(shù)組變量n 第一種方法:使用方括號第一種方法:使用方括號“ ”操作符操作符【例例2-1】創(chuàng)建數(shù)組創(chuàng)建數(shù)組(行向量行向量) a=1 3 pi 3+5i a=1 3 pi 3+5*i %or a=1, 3, pi, 3+5*i a= 1.0000 3.0000 3.1416 3.0000 + 5.000

13、0i所有的向量元素必須在操作符所有的向量元素必須在操作符“ ”之內(nèi);之內(nèi);向量元素間用向量元素間用空格空格或英文的或英文的逗點(diǎn)逗點(diǎn)“,”分開。分開。n 第二種方法:使用冒號第二種方法:使用冒號“:”操作符操作符【例例2-2】創(chuàng)建以創(chuàng)建以110順序排列整數(shù)為元素的行向量順序排列整數(shù)為元素的行向量b。b=1:10b=1 2 3 4 5 6 7 8 9 10 2022-7-4Matlab Language Programming14 2.2.22.2.2創(chuàng)建一維數(shù)組變量(續(xù))創(chuàng)建一維數(shù)組變量(續(xù))【例例2-3】鍵入并執(zhí)行鍵入并執(zhí)行c=1:2:10和和d=1:2:9 c=1:2:10c=1 3 5 7

14、 9d=1:2:9d= 1 3 5 7 9利用冒號利用冒號“:”操作符創(chuàng)建行向量的基本語法格式:操作符創(chuàng)建行向量的基本語法格式:x=Start:Increment:EndnStart表示新向量表示新向量x的第一個元素;的第一個元素;n新向量新向量x的最后一個元素不能大于的最后一個元素不能大于End ;nIncrement可正可負(fù),若負(fù),則必須可正可負(fù),若負(fù),則必須StartEnd;若正,則必;若正,則必須須Starta=1 2 3; b=2 3 4; c=a;b;c1=a b;n第二種方法:函數(shù)方法第二種方法:函數(shù)方法函數(shù)函數(shù)ones(生成全生成全1矩陣矩陣)、zeros (生成全生成全0矩陣

15、矩陣) 、reshapeF“help elmat”獲得基本的矩陣生成和操作函數(shù)列表獲得基本的矩陣生成和操作函數(shù)列表【例例3-4】創(chuàng)建全創(chuàng)建全1的的3x3數(shù)組。數(shù)組。ones(3)【例例3-5】創(chuàng)建全創(chuàng)建全1的的3x4數(shù)組。數(shù)組。ones(3,4) 2022-7-4Matlab Language Programming21 2.2.32.2.3創(chuàng)建二維數(shù)組變量(續(xù))創(chuàng)建二維數(shù)組變量(續(xù))【例例3-5】 reshape的使用演示的使用演示a=-4:4a= -4 -3 -2 -1 0 1 2 3 4b=reshape(a, 3, 3)b=-4 -1 2-3 0 3-2 1 4F 數(shù)組元素的排列順序,

16、數(shù)組元素的排列順序,從上到下按列排列從上到下按列排列,先排第一,先排第一列,然后第二列,列,然后第二列,F(xiàn) 要求數(shù)組的要求數(shù)組的元素總數(shù)不變元素總數(shù)不變。 2022-7-4Matlab Language Programming22 2. 2.42. 2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪n 數(shù)組元素的標(biāo)識數(shù)組元素的標(biāo)識n “全下標(biāo)(全下標(biāo)(index)”標(biāo)識:標(biāo)識:經(jīng)典數(shù)學(xué)教科書采用經(jīng)典數(shù)學(xué)教科書采用“全下標(biāo)全下標(biāo)”標(biāo)識法:標(biāo)識法:每一維對應(yīng)一個下標(biāo)。每一維對應(yīng)一個下標(biāo)。 如對于二維數(shù)組,用如對于二維數(shù)組,用“行下標(biāo)和列下標(biāo)行下標(biāo)和列下標(biāo)”標(biāo)識數(shù)組的元素,標(biāo)識數(shù)組的元素,a(2,3)就

17、表示二維數(shù)組就表示二維數(shù)組a的的“第第2行第行第3列列”的元素。的元素。 對于一維數(shù)組,用一個下標(biāo)即可,對于一維數(shù)組,用一個下標(biāo)即可,b(2)表示一維數(shù)組表示一維數(shù)組b的第的第2個元個元素,無論素,無論b是行向量還是列向量。是行向量還是列向量。n “單下標(biāo)單下標(biāo)”(linear index)標(biāo)識:)標(biāo)識:所謂所謂“單下標(biāo)單下標(biāo)”標(biāo)識就是用一個下標(biāo)來表明元素在數(shù)組的位置。標(biāo)識就是用一個下標(biāo)來表明元素在數(shù)組的位置。 對于二維數(shù)組,對于二維數(shù)組, “單下標(biāo)單下標(biāo)”編號:設(shè)想把二維數(shù)組的所有編號:設(shè)想把二維數(shù)組的所有列列,按,按先后順序首尾相接排成先后順序首尾相接排成“一維長列一維長列”,然后自上往下

18、對元素位置,然后自上往下對元素位置執(zhí)行編號。執(zhí)行編號。n 兩種兩種“下標(biāo)下標(biāo)”標(biāo)識的變換標(biāo)識的變換:sub2ind、ind2sub 2022-7-4Matlab Language Programming23 2.2.42.2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪(續(xù))(續(xù))【例例4-1】單下標(biāo)的使用單下標(biāo)的使用a=zeros(2, 5);a(:)=-4:5a = -4 -2 0 2 4 -3 -1 1 3 5% 注意數(shù)組的排列順序。注意數(shù)組的排列順序。 2022-7-4Matlab Language Programming24 2.2.42.2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪

19、 (續(xù))(續(xù))n 元素與子數(shù)組的尋訪與賦值元素與子數(shù)組的尋訪與賦值【例例4-2】一維數(shù)組元素與子數(shù)組的尋訪與賦值一維數(shù)組元素與子數(shù)組的尋訪與賦值a=linspace(1,10,5)a = 1.0000 3.2500 5.5000 7.7500 10.0000a(3) %尋訪尋訪a的第的第3個元素個元素ans = 5.5000a(1 2 5) %尋訪尋訪a的第的第1、2、5個元素組成的子數(shù)組個元素組成的子數(shù)組ans = 1.0000 3.2500 10.0000 2022-7-4Matlab Language Programming25 2.2.42.2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋

20、訪 (續(xù))(續(xù))a(1:3) %尋訪前尋訪前3個元素組成的子數(shù)組個元素組成的子數(shù)組ans = 1.0000 3.2500 5.5000a(3:-1:1) %由前由前3個元素倒序構(gòu)成的子數(shù)組個元素倒序構(gòu)成的子數(shù)組ans = 5.5000 3.2500 1.0000a(3:end)ans = 5.5000 7.7500 10.0000a(3:end-1)ans = 5.5000 7.7500% %第第3個及其后所有元素構(gòu)成的子數(shù)組個及其后所有元素構(gòu)成的子數(shù)組% 函數(shù)函數(shù)end作為參數(shù)使用,返回最后一個元素的下標(biāo)作為參數(shù)使用,返回最后一個元素的下標(biāo) 2022-7-4Matlab Language P

21、rogramming26 a(1 2 3 5 5 3 2 1) ans = 1.0000 3.2500 5.5000 10.0000 10.0000 5.5000 3.2500 1.0000% 數(shù)組元素可以被任意重復(fù)訪問,構(gòu)成長度大于原數(shù)組的數(shù)組元素可以被任意重復(fù)訪問,構(gòu)成長度大于原數(shù)組的新數(shù)組。新數(shù)組。a(6)? Index exceeds matrix dimensions.M 下標(biāo)值超出了數(shù)組的維數(shù),導(dǎo)致錯誤下標(biāo)值超出了數(shù)組的維數(shù),導(dǎo)致錯誤a(2.1)? Subscript indices must either be real positive integers or logicals

22、.M 下標(biāo)值只能取正整數(shù)或邏輯值下標(biāo)值只能取正整數(shù)或邏輯值2.2.42.2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪 (續(xù))(續(xù)) 2022-7-4Matlab Language Programming27 2.2.42.2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪 (續(xù))(續(xù))a(3)=0 %修改數(shù)組修改數(shù)組a的第的第3元素值為元素值為0a = 1.0000 3.2500 0 7.7500 10.0000a(2 5)=1 1a = 1.0000 1.0000 0 7.7500 1.0000 可以修改指定數(shù)組元素的值可以修改指定數(shù)組元素的值 一次可以修改多個數(shù)組元素的值一次可以修改多個數(shù)組

23、元素的值 要修改的數(shù)組元素的個數(shù)應(yīng)與送入數(shù)組的要修改的數(shù)組元素的個數(shù)應(yīng)與送入數(shù)組的元素個數(shù)相同元素個數(shù)相同 2022-7-4Matlab Language Programming28 2.2.42.2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪 (續(xù))(續(xù))【例例4-3】二維數(shù)組元素與子數(shù)組的尋訪與賦值二維數(shù)組元素與子數(shù)組的尋訪與賦值a_2=zeros(2, 4) %創(chuàng)建創(chuàng)建2x4的全的全0數(shù)組數(shù)組a_2 = 0 0 0 0 0 0 0 0a_2(:)=1:8a_2 = 1 3 5 7 2 4 6 8 a_2(2 5 8) %單下標(biāo)方式尋訪多個元素單下標(biāo)方式尋訪多個元素ans = 2 5 8%

24、注意元素的排列順序注意元素的排列順序 2022-7-4Matlab Language Programming29 2.2.42.2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪 (續(xù))(續(xù)) a_2(2 5 8) =10 20 30a_2 = 1 3 20 7 10 4 6 30a_2(:,2 3)=ones(2) %雙下標(biāo)方式尋訪并修改雙下標(biāo)方式尋訪并修改a_2 = 1 1 1 7 10 1 1 30%二維數(shù)組可以二維數(shù)組可以“單下標(biāo)單下標(biāo)”方式或方式或“全下標(biāo)全下標(biāo)”方式訪問、賦值;方式訪問、賦值;%“單下標(biāo)單下標(biāo)”方式賦值時,方式賦值時,等號兩邊涉及的元素個數(shù)必須相等;等號兩邊涉及的元素個

25、數(shù)必須相等;%“全下標(biāo)全下標(biāo)”方式賦值時,方式賦值時,等號右邊數(shù)組的大小必須等于原數(shù)組等號右邊數(shù)組的大小必須等于原數(shù)組中涉及元素構(gòu)成的子數(shù)組的大小。中涉及元素構(gòu)成的子數(shù)組的大小。 2022-7-4Matlab Language Programming30 2.2.42.2.4、數(shù)組元素的標(biāo)識與尋訪、數(shù)組元素的標(biāo)識與尋訪 (續(xù))(續(xù))a_2(:,end)ans = 7 30a_2(:,end-1)ans = 1 1a_2(:, end:-1:3)ans = 7 1 30 1a_2(end,:)ans = 10 1 1 30a_2(end,2:4)ans = 1 1 30a_2 (4 6)=6:7

26、a_2 = 1 1 1 7 10 6 7 30a_2(end,2:end-1) What is the result? 2022-7-4Matlab Language Programming31 2.2.42.2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪 (續(xù))(續(xù))【例例4-4】 size、length函數(shù)函數(shù)a=ones(4,6)*6m=size(a)len=length(a)b=1:5;length(b)c=blength(c) size函數(shù)返回變量的大小,即函數(shù)返回變量的大小,即變量數(shù)組的行列數(shù)變量數(shù)組的行列數(shù) length函數(shù)返回變量數(shù)組的最函數(shù)返回變量數(shù)組的最大維數(shù)大維數(shù) 202

27、2-7-4Matlab Language Programming32 2.2.42.2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪 (續(xù))(續(xù))n 雙下標(biāo)到單下標(biāo)的轉(zhuǎn)換雙下標(biāo)到單下標(biāo)的轉(zhuǎn)換【例例4-5】 sub2ind函數(shù)函數(shù)-雙下標(biāo)轉(zhuǎn)換為單下標(biāo)雙下標(biāo)轉(zhuǎn)換為單下標(biāo)A = 17 24 1 8; 2 22 7 14; 4 6 13 20;A(:,:,2) = A - 10A(2,1,2)sub2ind(size(A),2,1,2)A(14) 2022-7-4Matlab Language Programming33 2.2.42.2.4數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識與尋訪 (續(xù))(續(xù))n 單下

28、標(biāo)到雙下標(biāo)的轉(zhuǎn)換單下標(biāo)到雙下標(biāo)的轉(zhuǎn)換【例例4-6】 ind2sub函數(shù)函數(shù)-雙下標(biāo)轉(zhuǎn)換為單下標(biāo)雙下標(biāo)轉(zhuǎn)換為單下標(biāo)b = zeros(3);b(:) = 1:9IND = 3 4 5 6I,J = ind2sub(size(b),IND) 2022-7-4Matlab Language Programming34 2.2.52.2.5多多維數(shù)組維數(shù)組n 多維數(shù)組的定義多維數(shù)組的定義 在在 MATLAB 的的數(shù)據(jù)類型數(shù)據(jù)類型中,向量中,向量可視為一維數(shù)組,可視為一維數(shù)組, 矩陣可視為矩陣可視為二二維數(shù)組維數(shù)組,對于維數(shù)對于維數(shù)(Dimensions)超過超過2 的的數(shù)組均可視為數(shù)組均可視為多維數(shù)組

29、多維數(shù)組(Multidimesional Arrays,簡稱簡稱N-D Arrays)。 2022-7-4Matlab Language Programming35 2.2.52.2.5多多維數(shù)組維數(shù)組 (續(xù))(續(xù))n 將兩個二維(平面)數(shù)組疊將兩個二維(平面)數(shù)組疊在一起,就在一起,就構(gòu)成構(gòu)成三維數(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,

30、2)(3,3)(3,4)頁列頁行 2022-7-4Matlab Language Programming36 2.2.52.2.5多多維數(shù)組維數(shù)組 (續(xù))(續(xù))n 三維數(shù)組三維數(shù)組,可,可對應(yīng)對應(yīng)至一至一個個 X - Y - Z 三三維維立體坐標(biāo)立體坐標(biāo),如下,如下圖所示圖所示: Z(Z(頁頁) )Y(Y(列列) )X(X(行行) ) 2022-7-4Matlab Language Programming37 2.2.52.2.5多多維數(shù)組維數(shù)組 (續(xù))(續(xù))n三維數(shù)組元素的尋址:三維數(shù)組元素的尋址:可以可以(行、列、頁行、列、頁)來確定來確定。n以以維數(shù)為維數(shù)為 342 的的三維數(shù)組為例三維

31、數(shù)組為例,其,其尋址尋址方式如方式如下下圖所示圖所示: 數(shù)組數(shù)組 A 是是三維數(shù)組三維數(shù)組,其中,其中 A(:,:,1)代表第一代表第一頁頁的的二維二維數(shù)組數(shù)組,A(:,:,2)代表第代表第二頁二頁的的二維數(shù)組二維數(shù)組。 2022-7-4Matlab Language Programming38 2.2.52.2.5多多維數(shù)組維數(shù)組 (續(xù))(續(xù))n多維數(shù)組多維數(shù)組的建立的建立n建立一建立一個簡單個簡單的的多維數(shù)組多維數(shù)組,可,可直直接由接由 MATLAB 命命令視窗內(nèi)輸入(使用令視窗內(nèi)輸入(使用“ ”操作符)操作符)n例例:由兩個相同大小二維數(shù)組創(chuàng)建三維數(shù)組由兩個相同大小二維數(shù)組創(chuàng)建三維數(shù)組A

32、(:, :, 1) = 1 0 2 5; 4 1 8 7; 3 2 6 3;A(:, :, 2) = 3 5 4 1; 2 6 2 1; 4 2 3 0 A(:,:,1) = 1 0 2 5 4 1 8 7 3 2 6 3A(:,:,2) = 3 5 4 1 2 6 2 1 4 2 3 0 2022-7-4Matlab Language Programming39 2.2.52.2.5多多維數(shù)組維數(shù)組 (續(xù))(續(xù))執(zhí)行命令:執(zhí)行命令:whos A,得到如下結(jié)果:,得到如下結(jié)果: Name Size Bytes Class A 3x4x2 192 double arrayGrand total

33、is 24 elements using 192 bytes 2022-7-4Matlab Language Programming40 2.32.3數(shù)組的算術(shù)運(yùn)算數(shù)組的算術(shù)運(yùn)算n MATLAB數(shù)組支持線性代數(shù)中所有的矩陣運(yùn)算。數(shù)組支持線性代數(shù)中所有的矩陣運(yùn)算。n 建立特有的數(shù)組運(yùn)算符,如:建立特有的數(shù)組運(yùn)算符,如:“.*”、“./”等。等。 MATLAB數(shù)組運(yùn)算符列表數(shù)組運(yùn)算符列表 運(yùn)算運(yùn)算運(yùn)算符運(yùn)算符含義說明含義說明加+ 相應(yīng)元素相加 減 -相應(yīng)元素相減 乘*矩陣乘法點(diǎn)乘 .* 相應(yīng)元素相乘冪 矩陣冪運(yùn)算點(diǎn)冪 .相應(yīng)元素進(jìn)行冪運(yùn)算左除或右除或/矩陣左除或右除 左點(diǎn)除或右點(diǎn)除 .或./A的元

34、素被B的對應(yīng)元素除 2022-7-4Matlab Language Programming41 2.32.3算術(shù)運(yùn)算算術(shù)運(yùn)算 (續(xù))(續(xù)) 【例例5-1】數(shù)組加減法數(shù)組加減法a=zeros(2, 3);a(:)=1:6;b=a+2.5b = 3.5000 5.5000 7.5000 4.5000 6.5000 8.5000c=b-ac = 2.5000 2.5000 2.5000 2.5000 2.5000 2.5000 2022-7-4Matlab Language Programming42 2.32.3算術(shù)運(yùn)算算術(shù)運(yùn)算 (續(xù))(續(xù))【例例5-2】生成一個信號:生成一個信號:x=sin(2

35、*pi*t)+sin(4*pi*t)t = 0:199./100; %采樣時間點(diǎn)采樣時間點(diǎn)% 生成信號生成信號x = sin(2*pi*t) + sin(4*pi*t);plot(t,x);legend(x = sin(2*pi*t) + sin(4*pi*t); 2022-7-4Matlab Language Programming43 2.32.3算術(shù)運(yùn)算算術(shù)運(yùn)算 (續(xù))(續(xù)) 2022-7-4Matlab Language Programming44 2.32.3算術(shù)運(yùn)算算術(shù)運(yùn)算 (續(xù))(續(xù))【例例5-3】點(diǎn)冪點(diǎn)冪“.”舉例舉例a=1:6a = 1 2 3 4 5 6b=reshape(

36、a,2,3)b = 1 3 5 2 4 6a=a.2a = 1 4 9 16 25 36b=b.2b = 1 9 25 4 16 36 2022-7-4Matlab Language Programming45 2.42.4關(guān)系運(yùn)算關(guān)系運(yùn)算 Matlab提供了提供了6種關(guān)系運(yùn)算符:種關(guān)系運(yùn)算符:、=、=、=(不等于)(不等于)關(guān)系運(yùn)算符的運(yùn)算法則:關(guān)系運(yùn)算符的運(yùn)算法則:1、當(dāng)兩個標(biāo)量進(jìn)行比較時,直接比較兩數(shù)大小。若關(guān)系成立,、當(dāng)兩個標(biāo)量進(jìn)行比較時,直接比較兩數(shù)大小。若關(guān)系成立, 結(jié)果為結(jié)果為1,否則為,否則為0。2、當(dāng)兩個維數(shù)相等的矩陣進(jìn)行比較時,其相應(yīng)位置的元素按、當(dāng)兩個維數(shù)相等的矩陣進(jìn)行比

37、較時,其相應(yīng)位置的元素按 標(biāo)量關(guān)系進(jìn)行比較,并給出結(jié)果,形成一個維數(shù)與原來相同標(biāo)量關(guān)系進(jìn)行比較,并給出結(jié)果,形成一個維數(shù)與原來相同 的的0、1矩陣。矩陣。3、當(dāng)一個標(biāo)量與一個矩陣比較時,該標(biāo)量與矩陣的各元素進(jìn)行、當(dāng)一個標(biāo)量與一個矩陣比較時,該標(biāo)量與矩陣的各元素進(jìn)行 比較,結(jié)果形成一個與矩陣維數(shù)相等的比較,結(jié)果形成一個與矩陣維數(shù)相等的0、1矩陣。矩陣。 2022-7-4Matlab Language Programming46 2.42.4關(guān)系運(yùn)算關(guān)系運(yùn)算 (續(xù))(續(xù))【例例】建立建立5階方陣階方陣A,判斷其元素能否被,判斷其元素能否被3整除。整除。A = 24, 35, 13, 22, 63;

38、 23, 39, 47, 80, 80; . 90, 41, 80, 29, 10; 45, 57, 85, 62, 21; 37, 19, 31, 88, 76A =24 35 13 22 6323 39 47 80 8090 41 80 29 1045 57 85 62 2137 19 31 88 76P = rem(A,3)=0 %被被3除,求余除,求余P = 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 2022-7-4Matlab Language Programming47 2.52.5邏輯運(yùn)算邏輯運(yùn)算 Matlab提供了提供了

39、3種邏輯運(yùn)算符:種邏輯運(yùn)算符:&(與)、(與)、|(或)、(或)、(非)(非)邏輯運(yùn)算符的運(yùn)算法則:邏輯運(yùn)算符的運(yùn)算法則:1、在邏輯運(yùn)算中,確認(rèn)非零元素為真(、在邏輯運(yùn)算中,確認(rèn)非零元素為真(1),零元素為假(),零元素為假(0)。)。 2、當(dāng)兩個維數(shù)相等的矩陣進(jìn)行比較時,其相應(yīng)位置的元素按、當(dāng)兩個維數(shù)相等的矩陣進(jìn)行比較時,其相應(yīng)位置的元素按 標(biāo)量關(guān)系進(jìn)行比較,并給出結(jié)果,形成一個維數(shù)與原來相同標(biāo)量關(guān)系進(jìn)行比較,并給出結(jié)果,形成一個維數(shù)與原來相同 的的0、1矩陣;矩陣;3、當(dāng)一個標(biāo)量與一個矩陣比較時,該標(biāo)量與矩陣的各元素進(jìn)行、當(dāng)一個標(biāo)量與一個矩陣比較時,該標(biāo)量與矩陣的各元素進(jìn)行 比較,結(jié)果形成

40、一個與矩陣維數(shù)相等的比較,結(jié)果形成一個與矩陣維數(shù)相等的0、1矩陣;矩陣;4、算術(shù)運(yùn)算優(yōu)先級最高,、算術(shù)運(yùn)算優(yōu)先級最高,邏輯運(yùn)算優(yōu)先級最低邏輯運(yùn)算優(yōu)先級最低。 2022-7-4Matlab Language Programming48 【例例】建立矩陣建立矩陣A,找出在,找出在10,20區(qū)間的元素的位置。區(qū)間的元素的位置。 A = 4,15,-45,10,6;56,0,17,-45,0;find(A=10 & Ax=-43,72,9,16,23,47;y=max(x) %求向量求向量x中的最大值中的最大值y = 72y,l=max(x) %求向量求向量x中的最大值及其該元素的位置中的最大值及其該

41、元素的位置y = 72l = 22.6.12.6.1最大值和最小值最大值和最小值 2022-7-4Matlab Language Programming51 2. 求矩陣的最大值和最小值求矩陣的最大值和最小值求矩陣求矩陣A的最大值的函數(shù)有的最大值的函數(shù)有3種調(diào)用格式,分別是:種調(diào)用格式,分別是:(1) max(A):返回一個返回一個行向量行向量,向量的第,向量的第i個元素是矩陣個元素是矩陣A的第的第i列上的最大值;列上的最大值;(2) Y,U=max(A):返回行向量返回行向量Y和和U,Y向量記錄向量記錄A的每的每列的最大值,列的最大值,U向量記錄每列最大值的行號;向量記錄每列最大值的行號;(3) max(A,dim):dim取取1或或2。dim取取1時,該函數(shù)和時,該函數(shù)和max(A)完全相同;完全相同;dim取取2時,該函數(shù)返回一個列向量時,該函數(shù)返回一個列向量,其第,其第i個元素是個元素是A矩陣的第矩陣的第i行上的最大值。行上的最大值。求最小值的函數(shù)是求最小值的函數(shù)是min,其用法和,其用法和max完全相同。完全相同。2.6.12.6.1最大值和最小值最大值和最小值 2022-7-4Matlab Language Programming52 【例例7-2】求矩陣的最大值求矩

溫馨提示

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

評論

0/150

提交評論