版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第2章Matlab數(shù)據(jù)及其運(yùn)算
Matlab數(shù)據(jù)類型非常豐富,除數(shù)值型、字符型等基本數(shù)據(jù)類型外,還有結(jié)構(gòu)體、單元等更為復(fù)雜的數(shù)據(jù)類型。各種數(shù)據(jù)類型都以矩陣形式存在,矩陣是Matlab最基本的數(shù)據(jù)對象,并且矩陣的運(yùn)算是定義在復(fù)數(shù)域上的。
2024/3/20ApplicationofMatlabLanguage2
2.1數(shù)值表示、變量及表達(dá)式數(shù)值的記述
Matlab的數(shù)只采用習(xí)慣的十進(jìn)制表示,可以帶小數(shù)點(diǎn)和負(fù)號;其缺省的數(shù)據(jù)類型為雙精度浮點(diǎn)型(double)。例如:3-100.0011.3e101.256e-6變量命令規(guī)則變量名、函數(shù)名對字母的大小寫是敏感的。如myVar與myvar表示兩個(gè)不同的變量。變量名第一個(gè)字母必須是英文字母。變量名可以包含英文字母、下劃線和數(shù)字。變量名不能包含空格、標(biāo)點(diǎn)。變量名最多可包含63個(gè)字符(6.5及以后的版本)。
2024/3/20ApplicationofMatlabLanguage3
2.1數(shù)值表示、變量及表達(dá)式(續(xù))Matlab預(yù)定義的變量變量名意義ans最近的計(jì)算結(jié)果的變量名epsMATLAB定義的正的極小值=2.2204e-16pi圓周率πinf∞值,無限大i或j虛數(shù)單元,sqrt(-1)NaN非數(shù),0/0、∞/∞〖說明〗每當(dāng)MATLAB啟動(dòng)完成,這些變量就被產(chǎn)生。MATLAB中,被0除不會(huì)引起程序中斷,給出報(bào)警的同時(shí)用inf或NaN給出結(jié)果。用戶只能臨時(shí)覆蓋這些預(yù)定義變量的值,Clear或重啟MATLAB可恢復(fù)其值。
2024/3/20ApplicationofMatlabLanguage4
2.1數(shù)值表示、變量及表達(dá)式
(續(xù))運(yùn)算符和表達(dá)式運(yùn)算數(shù)學(xué)表達(dá)式MATLAB運(yùn)算符MATLAB表達(dá)式加a+b+a+b減a-b-a-b乘axb*a*b除a/b或a\b/或\a/b或a\b冪^a^b〖說明〗Matlab用“\”和”/”分別表示“左除”和“右除”。對標(biāo)量而言,兩者沒有區(qū)別。對矩陣產(chǎn)生不同影響。MATLAB表達(dá)式的書寫規(guī)則與“手寫方式”幾乎完全相同。表達(dá)式按與常規(guī)相同的優(yōu)先級自左至右執(zhí)行運(yùn)算。優(yōu)先級:指數(shù)運(yùn)算級別最高,乘除次之,加減最低。括號改變運(yùn)算的次序。
2024/3/20ApplicationofMatlabLanguage5
2.1數(shù)值表示、變量及表達(dá)式(續(xù))復(fù)數(shù)及其運(yùn)算MATLAB中復(fù)數(shù)的表達(dá):z=a+bi,其中a、b為實(shí)數(shù)。MATLAB把復(fù)數(shù)作為一個(gè)整體,象計(jì)算實(shí)數(shù)一樣計(jì)算復(fù)數(shù)?!纠?.3-1】復(fù)數(shù)z1=3+4i,z2=1+2i,z3=
計(jì)算z1=3+4*i,z2=1+2*i,z3=exp(i*pi/6),z=z1*z2/z3z_real=real(z),z_image=imag(z),z_angle=angle(z),z_length=abs(z),
2024/3/20ApplicationofMatlabLanguage6
2.2Matlab矩陣(數(shù)組)的表示數(shù)組的概念一維數(shù)組變量的創(chuàng)建二維數(shù)組變量的創(chuàng)建數(shù)組元素的標(biāo)識與尋訪數(shù)組運(yùn)算多維數(shù)組
2024/3/20ApplicationofMatlabLanguage7
2.2.1.數(shù)組(array)的概念數(shù)組定義:按行(row)和列(column)順序排列的實(shí)數(shù)或復(fù)數(shù)的有序集,被稱為數(shù)組。數(shù)組中的任何一個(gè)數(shù)都被稱為這個(gè)數(shù)組的元素,由其所在的行和列標(biāo)識,這個(gè)標(biāo)識也稱為數(shù)組元素的下標(biāo)或索引。Matlab將標(biāo)量視為1×1的數(shù)組。
對m行、n列的2維數(shù)組a:計(jì)為m×n的數(shù)組a;*行標(biāo)識、列標(biāo)識均從1開始;行標(biāo)識從上到下遞增;列標(biāo)識從左到右遞增。12345222232425332333435442434445a(3,4)=34rowisfirsta=
2024/3/20ApplicationofMatlabLanguage8
數(shù)組的分類一維數(shù)組,也稱為向量(vector)。行向量(rowvector)、列向量(columnvector)。二維數(shù)組(矩陣matrix)。多維數(shù)組。有效矩陣:每行元素的個(gè)數(shù)必須相同,每列元素的個(gè)數(shù)也必須相同。2.2.1.數(shù)組(array)的概念
2024/3/20ApplicationofMatlabLanguage9
2.2.1.數(shù)組(array)的概念(續(xù))行向量列向量a(2,1)=3a(1,2)=2b(3)=3c(2)=2
2024/3/20ApplicationofMatlabLanguage10
2.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所有的向量元素必須在操作符“[]”之內(nèi);向量元素間用空格或英文的逗點(diǎn)“,”分開。第二種方法:使用冒號“:”操作符【例2-2】創(chuàng)建以1~10順序排列整數(shù)為元素的行向量b。>>b=1:10b=12345678910
2024/3/20ApplicationofMatlabLanguage11
2.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的第一個(gè)元素;新向量x的最后一個(gè)元素不能大于End;Increment可正可負(fù),若負(fù),則必須Start>End;若正,則必須Start<End,否則創(chuàng)建的為空向量。若Increment=1,則可簡寫為:x=Start:End。
2024/3/20ApplicationofMatlabLanguage12
2.2.2、創(chuàng)建一維數(shù)組變量(續(xù))第三種方法:利用函數(shù)linspace函數(shù)linspace的基本語法x=linspace(x1,x2,n)該函數(shù)生成一個(gè)由n個(gè)元素組成的行向量;x1為其第一個(gè)元素;x2為其最后一個(gè)元素;x1、x2之間元素的間隔=(x2-x1)/(n-1)。如果忽略參數(shù)n,則系統(tǒng)默認(rèn)生成100個(gè)元素的行向量?!纠?-4】鍵入并執(zhí)行x=linspace(1,2,5)x=1.00001.25001.50001.75002.0000同學(xué)們可以在實(shí)驗(yàn)時(shí)察看x=linspace(1,2)執(zhí)行結(jié)果。
2024/3/20ApplicationofMatlabLanguage13
2.2.2、創(chuàng)建一維數(shù)組變量(續(xù))列向量的創(chuàng)建使用方括號“[]”操作符,使用分號“;”分割行?!纠?-5】鍵入并執(zhí)行x=[1;2;3]X=123使用冒號操作符【例2-6】鍵入并執(zhí)行x=(1:3)’%“’”表示矩陣的轉(zhuǎn)置
2024/3/20ApplicationofMatlabLanguage14
2.2.2、創(chuàng)建一維數(shù)組變量
(續(xù))創(chuàng)建數(shù)組變量的一般方法創(chuàng)建變量的賦值語句的一般格式var=expressionvar為變量名expression為MATLAB合法表達(dá)式可以是單獨(dú)的常數(shù)值或數(shù)值數(shù)組;也可以由常數(shù)值、其他變量(部分或全部)、數(shù)值數(shù)組和運(yùn)算符(+、-等)構(gòu)成?!纠?-7】鍵入并執(zhí)行a=[01+6];b=[a67];c=[6a7];d=[6a7a];
2024/3/20ApplicationofMatlabLanguage15
2.2.2、創(chuàng)建一維數(shù)組變量
(續(xù))一旦被創(chuàng)建,變量就被存儲在工作空間,可以通過“Workspace”窗口或在“CommandWindow”執(zhí)行“whos”命令察看。操作一:使用“Workspace”窗口察看變量操作二:使用“whos”命令察看變量
2024/3/20ApplicationofMatlabLanguage16
2.2.3、創(chuàng)建二維數(shù)組變量第一種方法:使用方括號“[]”操作符使用規(guī)則數(shù)組元素必須在“[]”內(nèi)鍵入;行與行之間須用分號“;”間隔,也可以在分行處用回車鍵間隔;行內(nèi)元素用空格或逗號“,”間隔。【例3-1】鍵入并執(zhí)行a2=[123;456;789]a2=123456789【例3-2】鍵入并執(zhí)行a2=[1:3;4:6;7:9]%結(jié)果同上
2024/3/20ApplicationofMatlabLanguage17
2.2.3、創(chuàng)建二維數(shù)組變量(續(xù))【例3-3】由向量構(gòu)成二維數(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)
2024/3/20ApplicationofMatlabLanguage18
2.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ù)不變。
2024/3/20ApplicationofMatlabLanguage19
2.2.4、數(shù)組元素的標(biāo)識與尋訪數(shù)組元素的標(biāo)識“全下標(biāo)(index)”標(biāo)識經(jīng)典數(shù)學(xué)教科書采用“全下標(biāo)”標(biāo)識法:每一維對應(yīng)一個(gè)下標(biāo)。如對于二維數(shù)組,用“行下標(biāo)和列下標(biāo)”標(biāo)識數(shù)組的元素,a(2,3)就表示二維數(shù)組a的“第2行第3列”的元素。對于一維數(shù)組,用一個(gè)下標(biāo)即可,b(2)表示一維數(shù)組b的第2個(gè)元素,無論b是行向量還是列向量。“單下標(biāo)”(linearindex)標(biāo)識所謂“單下標(biāo)”標(biāo)識就是用一個(gè)下標(biāo)來表明元素在數(shù)組的位置。對于二維數(shù)組,“單下標(biāo)”編號:設(shè)想把二維數(shù)組的所有列,按先后順序首尾相接排成“一維長列”,然后自上往下對元素位置執(zhí)行編號。兩種“下標(biāo)”標(biāo)識的變換:sub2ind、ind2sub
2024/3/20ApplicationofMatlabLanguage20
2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(xù))【例4-1】單下標(biāo)的使用>>a=zeros(2,5);>>a(:)=-4:5a=-4-2024-3-1135注意數(shù)組的排列順序。
2024/3/20ApplicationofMatlabLanguage21
2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(xù))元素與子數(shù)組的尋訪與賦值【例4-3】一維數(shù)組元素與子數(shù)組的尋訪與賦值>>a=linspace(1,10,5)a=1.00003.25005.50007.750010.0000>>a(3)%尋訪a的第3個(gè)元素ans=5.5000>>a([125])%尋訪a的第1、2、5個(gè)元素組成的子數(shù)組ans=1.00003.250010.0000
2024/3/20ApplicationofMatlabLanguage22
2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(xù))>>a(1:3)%尋訪前3個(gè)元素組成的子數(shù)組ans=1.00003.25005.5000>>a(3:-1:1)%由前3個(gè)元素倒序構(gòu)成的子數(shù)組ans=5.50003.25001.0000>>a(3:end)ans=5.50007.750010.0000>>a(3:end-1)ans=5.50007.7500%第3個(gè)及其后所有元素構(gòu)成的子數(shù)組函數(shù)end作為參數(shù)使用,返回最后一個(gè)元素的下標(biāo)
2024/3/20ApplicationofMatlabLanguage23
>>a([12355321])ans=1.00003.25005.500010.000010.00005.50003.25001.0000數(shù)組元素可以被任意重復(fù)訪問,構(gòu)成長度大于原數(shù)組的新數(shù)組。>>a(6)???Indexexceedsmatrixdimensions.下標(biāo)值超出了數(shù)組的維數(shù),導(dǎo)致錯(cuò)誤>>a(2.1)???Subscriptindicesmusteitherberealpositiveintegersorlogicals.下標(biāo)值只能取正整數(shù)或邏輯值2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(xù))
2024/3/20ApplicationofMatlabLanguage24
2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(xù))>>a(3)=0%修改數(shù)組a的第3元素值為0a=1.00003.250007.750010.0000>>a([25])=[11]a=1.00001.000007.75001.0000可以修改指定數(shù)組元素的值一次可以修改多個(gè)數(shù)組元素的值要修改的數(shù)組元素的個(gè)數(shù)應(yīng)與送入數(shù)組的元素個(gè)數(shù)相同
2024/3/20ApplicationofMatlabLanguage25
2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(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])%單下標(biāo)方式尋訪多個(gè)元素ans=258注意元素的排列順序
2024/3/20ApplicationofMatlabLanguage26
2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(xù))>>a_2([258])=[102030]a_2gt;>a_2(:,[23])=ones(2)%雙下標(biāo)方式尋訪并修改a_2=1117101130二維數(shù)組可以“單下標(biāo)”方式或“全下標(biāo)”方式訪問、賦值;“單下標(biāo)”方式賦值時(shí),等號兩邊涉及的元素個(gè)數(shù)必須相等;“全下標(biāo)”方式賦值時(shí),等號右邊數(shù)組的大小必須等于原數(shù)組中涉及元素構(gòu)成的子數(shù)組的大小。
2024/3/20ApplicationofMatlabLanguage27
2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(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?
2024/3/20ApplicationofMatlabLanguage28
2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(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ù)
2024/3/20ApplicationofMatlabLanguage29
2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(xù))雙下標(biāo)到單下標(biāo)的轉(zhuǎn)換【例4-5】
sub2ind函數(shù)-雙下標(biāo)轉(zhuǎn)換為單下標(biāo)>>A=[172418;222714;461320];>>sub2ind(size(A),2,2)>>A(5)
2024/3/20ApplicationofMatlabLanguage30
2.2.4、數(shù)組元素的標(biāo)識與尋訪(續(xù))單下標(biāo)到雙下標(biāo)的轉(zhuǎn)換【例4-6】
ind2sub函數(shù)-單下標(biāo)轉(zhuǎn)換為雙下標(biāo)>>b=zeros(3);>>b(:)=1:9>>IND=[3456]>>[I,J]=ind2sub(size(b),IND)
2024/3/20ApplicationofMatlabLanguage31
2.2.5、多維數(shù)組多維數(shù)組的定義
在MATLAB的數(shù)據(jù)類型中,向量可視為一維數(shù)組,矩陣可視為二維數(shù)組,對于維數(shù)(Dimensions)超過2的數(shù)組均可視為「多維數(shù)組」(Multidimesional
Arrays,簡稱N-DArrays)。
2024/3/20ApplicationofMatlabLanguage32
2.2.5、多維數(shù)組(續(xù))將兩個(gè)二維(平面)數(shù)組疊在一起,就構(gòu)成三維數(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)頁列頁行
2024/3/20ApplicationofMatlabLanguage33
2.2.5、多維數(shù)組(續(xù))三維數(shù)組,可對應(yīng)至一個(gè)
X-Y-Z三維立體坐標(biāo),如下圖所示:
Z(頁)Y(列)X(行)
2024/3/20ApplicationofMatlabLanguage34
2.2.5、多維數(shù)組(續(xù))三維數(shù)組元素的尋址:可以(行、列、頁)來確定。以維數(shù)為
3×4×2的三維數(shù)組為例,其尋址方式如下圖所示:數(shù)組
A是三維數(shù)組,其中A(:,:,1)代表第一頁的二維數(shù)組,A(:,:,2)代表第二頁的二維數(shù)組。
2024/3/20ApplicationofMatlabLanguage35
2.2.5、多維數(shù)組(續(xù))多維數(shù)組的建立建立一個(gè)簡單的多維數(shù)組,可直接由MATLAB命令視窗內(nèi)輸入(使用“[]”操作符)例:由兩個(gè)相同大小二維數(shù)組創(chuàng)建三維數(shù)組A(:,:,1)=[1025;4187;3263];A(:,:,2)=[3541;2621;4230]
A(:,:,1)=102541873263A(:,:,2)=354126214230
2024/3/20ApplicationofMatlabLanguage36
2.2.5、多維數(shù)組(續(xù))執(zhí)行命令:whosA,得到如下結(jié)果:
NameSizeBytes
Class
A3x4x2
192
doublearrayGrandtotalis24elementsusing192bytes
2024/3/20ApplicationofMatlabLanguage37
2.2.6、數(shù)組的算術(shù)運(yùn)算MATLAB數(shù)組支持線性代數(shù)中所有的矩陣運(yùn)算。建立特有的數(shù)組運(yùn)算符,如:“.*”、“./”等。
MATLAB數(shù)組運(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的元素被B的對應(yīng)元素除
2024/3/20ApplicationofMatlabLanguage38
2.2.6、算術(shù)運(yùn)算(續(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.5000
2024/3/20ApplicationofMatlabLanguage39
2.2.6、算術(shù)運(yùn)算(續(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)’);
2024/3/20ApplicationofMatlabLanguage40
2.2.6、算術(shù)運(yùn)算(續(xù))【例5-2】生成一個(gè)信號:x=sin(2*pi*t)+sin(4*pi*t)t=[0:199]./100;%采樣時(shí)間點(diǎn)%生成信號x=sin(2*pi*t)+sin(4*pi*t);plot(t,x);legend(‘x=sin(2*pi*t)+sin(4*pi*t)’);
2024/3/20ApplicationofMatlabLanguage41
2.2.6、算術(shù)運(yùn)算(續(xù))
2024/3/20ApplicationofMatlabLanguage42
2.2.6、算術(shù)運(yùn)算(續(xù))【例5-2】點(diǎn)冪“.^”舉例>>a=1:6a=123456>>b=reshape(a,2,3)b=135246>>a=a.^2a=149162536>>b=b.^2b=192541636
2024/3/20ApplicationofMatlabLanguage43
2.2.7、關(guān)系運(yùn)算
Matlab提供了6種關(guān)系運(yùn)算符:<、>、<=、>=、==、~=(不等于)關(guān)系運(yùn)算符的運(yùn)算法則:1、當(dāng)兩個(gè)標(biāo)量進(jìn)行比較時(shí),直接比較兩數(shù)大小。若關(guān)系成立,結(jié)果為1,否則為0。2、當(dāng)兩個(gè)維數(shù)相等的矩陣進(jìn)行比較時(shí),其相應(yīng)位置的元素按標(biāo)量關(guān)系進(jìn)行比較,并給出結(jié)果,形成一個(gè)維數(shù)與原來相同的0、1矩陣。3、當(dāng)一個(gè)標(biāo)量與一個(gè)矩陣比較時(shí),該標(biāo)量與矩陣的各元素進(jìn)行比較,結(jié)果形成一個(gè)與矩陣維數(shù)相等的0、1矩陣。
2024/3/20ApplicationofMatlabLanguage44
2.2.7、關(guān)系運(yùn)算(續(xù))【例】建立5階方陣A,判斷其元素能否被3整除。A=[24,35,13,22,63;23,39,47,80,80;...90,41,80,29,10;45,57,85,62,21;37,19,31,88,76]A=2435132263233947808090418029105785622119318876P=rem(A,3)==0%被3除,求余P=1000101000100001100100000
2024/3/20ApplicationofMatlabLanguage45
2.2.8、邏輯運(yùn)算
Matlab提供了3種邏輯運(yùn)算符:&(與)、|(或)、~(非)邏輯運(yùn)算符的運(yùn)算法則:1、在邏輯運(yùn)算中,確認(rèn)非零元素為真(1),零元素為假(0)。
2、當(dāng)兩個(gè)維數(shù)相等的矩陣進(jìn)行比較時(shí),其相應(yīng)位置的元素按標(biāo)量關(guān)系進(jìn)行比較,并給出結(jié)果,形成一個(gè)維數(shù)與原來相同的0、1矩陣;3、當(dāng)一個(gè)標(biāo)量與一個(gè)矩陣比較時(shí),該標(biāo)量與矩陣的各元素進(jìn)行比較,結(jié)果形成一個(gè)與矩陣維數(shù)相等的0、1矩陣;4、算術(shù)運(yùn)算優(yōu)先級最高,邏輯運(yùn)算優(yōu)先級最低。
2024/3/20ApplicationofMatlabLanguage46
【例】在[0,3π]區(qū)間,求的值。要求消去負(fù)半波,即(π,2π)區(qū)間內(nèi)的函數(shù)值置零。x=0:pi/100:3*pi;y=sin(x);y1=(y>=0).*y;%消去負(fù)半波
2024/3/20ApplicationofMatlabLanguage47
【例】建立矩陣A,找出在[10,20]區(qū)間的元素的位置。
A=[4,15,-45,10,6;56,0,17,-45,0];find(A>=10&A<=20)%找到非零元素的位置A=415-4510656017-450ans=367
2024/3/20ApplicationofMatlabLanguage48
2.2.9.數(shù)據(jù)分析與統(tǒng)計(jì)最大值和最小值
MATLAB提供的求數(shù)據(jù)序列的最大值和最小值的函數(shù)分別為max和min,兩個(gè)函數(shù)的調(diào)用格式和操作過程類似。
1、求向量的最大值和最小值求一個(gè)向量X的最大值的函數(shù)有兩種調(diào)用格式,分別是:
(1)y=max(X):返回向量X的最大值存入y,如果X中包含復(fù)數(shù)元素,則按模取最大值;
(2)[y,I]=max(X):返回向量X的最大值存入y,最大值的序號存入I,如果X中包含復(fù)數(shù)元素,則按模取最大值。求向量X的最小值的函數(shù)是min(X),用法和max(X)完全相同。
2024/3/20ApplicationofMatlabLanguage49
【例7-1】求向量的最大值>>x=[-43,72,9,16,23,47];>>y=max(x)%求向量x中的最大值y=72>>[y,l]=max(x)%求向量x中的最大值及其該元素的位置y=72l=2
2024/3/20ApplicationofMatlabLanguage50
2.2.9.數(shù)據(jù)分析與統(tǒng)計(jì)2.求矩陣的最大值和最小值求矩陣A的最大值的函數(shù)有3種調(diào)用格式,分別是:(1)max(A):返回一個(gè)行向量,向量的第i個(gè)元素是矩陣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ù)返回一個(gè)列向量,其第i個(gè)元素是A矩陣的第i行上的最大值。求最小值的函數(shù)是min,其用法和max完全相同。
2024/3/20ApplicationofMatlabLanguage51
【例7-2】求矩陣的最大值>>x=[-43,72,9;16,23,47];>>y=max(x)%求矩陣x中每列的最大值y=167247>>[y,l]=max(x)%求矩陣x中每列的最大值及其該元素的位置y=
167247l=212>>max(x,[],1),max(x,[],2)%求矩陣中每行的最大值
2024/3/20ApplicationofMatlabLanguage52
2.2.9.數(shù)據(jù)分析與統(tǒng)計(jì)求和與求積sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘積。sum(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的元素和。prod(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的元素乘積。sum(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于sum(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的各元素之和。prod(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于prod(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的各元素乘積。
2024/3/20ApplicationofMatlabLanguage53
2.2.9.數(shù)據(jù)分析與統(tǒng)計(jì)平均值與中值求數(shù)據(jù)序列平均值的函數(shù)是mean,求數(shù)據(jù)序列中值的函數(shù)是median。兩個(gè)函數(shù)的調(diào)用格式為:mean(X):返回向量X的算術(shù)平均值。median(X):返回向量X的中值。mean(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的算術(shù)平均值。median(A):返回一個(gè)行向量,其第i個(gè)元素是A的第i列的中值。mean(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于mean(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的算術(shù)平均值。median(A,dim):當(dāng)dim為1時(shí),該函數(shù)等同于median(A);當(dāng)dim為2時(shí),返回一個(gè)列向量,其第i個(gè)元素是A的第i行的中值。
2024/3/20ApplicationofMatlabLanguage54
2.3字符串(string、arrayofcharacters)關(guān)于字符串MATLAB處理字符(Characters)與字符串(Strings)的相關(guān)指令大部分都放在下列目錄之中:
{MATLAB根目錄}\toolbox\matlab\strfun其中的「strfun」就是代表「StringFunctions」。若要查詢與字符和字符串相關(guān)的指令,可在MATLAB下輸入:
helpstrfun或是helpstrings
2024/3/20ApplicationofMatlabLanguage55
2.3字符串的概念字符(Characters)可以構(gòu)成一個(gè)字符串(Strings),或字符數(shù)組(characterarray)。
一個(gè)字符串是被視為一個(gè)行向量(row
vector)。
字符串中的每一個(gè)字符(含空格),以其ASCII碼的形式存放于行向量中,是該字符串變量的一個(gè)元素(element)。
2024/3/20ApplicationofMatlabLanguage56
2.3
、字符串Matlab用「單引號」來界定一個(gè)字符串??梢允褂梅嚼ㄌ枴癧]”直接連接多個(gè)字符串變量,得到一個(gè)新字符串變量?!纠?-2】命名字符串變量str1=‘IlikeMATLAB,’;
%建立字串變量
str1str2='JavaScript,andPerl!';
%建立字串變量str2str3=[str1str2]
%直接連接str1及str2,以建立str3str3=
IlikeMATLAB,JavaScript,andPerl!
2024/3/20ApplicationofMatlabLanguage57
2.3
、字符串如要輸入的字符串中有單引號,則由兩個(gè)連續(xù)的單引號來表示。若要計(jì)算字符串變量的長度(即組成字符串的個(gè)數(shù)),可用length指令。
【例3-2】含單引號字符串的輸入sentence='I''vegotadate!';length(sentence) %計(jì)算字字符串sentence的長度ans=16
2024/3/20ApplicationofMatlabLanguage58
2.3、
字符串double指令:查看字符串變量的存儲內(nèi)容(即ASCII內(nèi)碼)char指令:將
ASCII內(nèi)碼轉(zhuǎn)換為字符串形式【例3-2】:字符串與ASCII碼的相互轉(zhuǎn)換
sentence='I''vegotadate!';sentenceAscii=double(sentence)%查看
sentence的ASCII碼sentence2=char(sentenceAscii)
%將
ASCII碼恢復(fù)成字符串形式sentenceAscii= 733911810132103111116329732100
9711610133 sentence2=
I'vegotadate!
2024/3/20ApplicationofMatlabLanguage59
2.3.字符串的判斷class或
ischar
指令:可以用來判斷一個(gè)變量的類型或它是否為字符串變量?!纠?-4】:判斷一個(gè)變量是否為字符串變量。
chinese=‘今日事,今日畢';out1=class(chinese)
%out1的值是“char”x=chinese+1;out2=ischar(x)
%out2的值是0,代表x不是字符串變量
2024/3/20ApplicationofMatlabLanguage60
2.3.一個(gè)字符數(shù)組變量存儲多行字符串
第一種方法是使用二維字符數(shù)組(TwoDimensionalCharacterArrays)必須先確認(rèn)每個(gè)字符串(即每一行)的長度一樣,否則就必須在短字符串結(jié)尾補(bǔ)齊空格
【例3-5】:多行字符串變量departments=[‘ee’;‘cs’;‘econ’] 注意上述語句中空格字符的使用。departments=
ee cs econ
2024/3/20ApplicationofMatlabLanguage61
2.3
、一個(gè)變量存儲多個(gè)字符串
(續(xù))用char指令存儲多字符串
得到結(jié)果和上例的一樣;從二維字符數(shù)組訪問字符串時(shí),切記要使用deblank指令來清除字符串尾部的空格字符
【例3-5】:使用deblank命令清除字符串尾部空格.departments=char(‘ee’,‘cs’,‘econ’)
%注意空格及「,」的使用departments=char('ee','cs','econ');dept1=departments(1,:); %(1,:)代表第一行的全部元素
dept2=deblank(dept1);
%使用deblank指令清除尾部的空格字符
len1=length(dept1) %顯示變量
dept1的長度=4len2=length(dept2)
%
顯示變量
dept2的長度=2
2024/3/20ApplicationofMatlabLanguage62
2.3.字符串的操作strcmp
指令:用于比較字符串的內(nèi)容的異同
【例3-6】:字符串比較不相等返回0,相等返回1str1='today';str2='tomorrow';str3='today';out1=strcmp(str1,str2)
%比較字符串str1和
str2out1=0
%表示字符串str1和
str2不同out2=strcmp(str1,str3)
%
比較字符串str1和str3out2=1
%表示字符串str1和
str2相同
2024/3/20ApplicationofMatlabLanguage63
2.4.空數(shù)組(emptyarray)有一維是0的數(shù)組即為空數(shù)組空數(shù)組不占據(jù)存儲空間最簡單的空數(shù)組:0x0的矩陣復(fù)雜的空數(shù)組:0x5or10x0例如:>>a=[];b=ones(0,5);察看空數(shù)組:>>a,b,c%orwhosabc空數(shù)組并非全0數(shù)組
2024/3/20ApplicationofMatlabLanguage64
2.4空數(shù)組(續(xù))數(shù)組維數(shù)的減小刪除數(shù)組的某列和行>>a=magic(4),a(:,2)=[]刪除(2-D、3-D)數(shù)組的單個(gè)元素使用“全下標(biāo)”方式,不能刪除單個(gè)元素>>a(1,2)=[]%系統(tǒng)會(huì)警告信息使用“單下標(biāo)”可以刪除單個(gè)元素>>a(2:4)=[]%數(shù)組a將變?yōu)橄蛄渴褂谩癧]”同樣可以減小字符數(shù)組的維數(shù)
2024/3/20ApplicationofMatlabLanguage65
2.5、元胞數(shù)組(cellarray)元胞數(shù)組(單元數(shù)組)的概念特殊的數(shù)據(jù)類型,在一個(gè)數(shù)組中存放各種不同類型的數(shù)據(jù)每個(gè)單元相當(dāng)于一個(gè)“盒子”“盒子”可存儲各種不同類型的MATLAB數(shù)據(jù)元胞數(shù)組例子:Cell1,1TaiwanTaibeiCell1,2MainlandBeijingCell1,3[1234]test
2024/3/20ApplicationofMatlabLanguage66
2.5.1元胞數(shù)組的創(chuàng)建創(chuàng)建方法賦值語句cell函數(shù)賦值語句創(chuàng)建元胞數(shù)組元胞索引(cellindexing)方式
格式:a(1,2)={………}元胞內(nèi)容索引(contentindexing)方式
格式:a{1,2}=[…]or‘…’直接用大括號一次把所有元素括起來b={'JamesBond',[12;34;56];pi,ones(5)}
2024/3/20ApplicationofMatlabLanguage67
2.5.1元胞數(shù)組的創(chuàng)建(續(xù))Cellindexing方式創(chuàng)建元胞數(shù)組>>a(1,1)={[143;058;729]};>>a(1,2)={'AnneSmith'};>>a(2,1)={3+7i};>>a(2,2)={-pi:pi/10:pi};“{}”表示空元胞數(shù)組Contentindexing方式創(chuàng)建元胞數(shù)組>>b{1,1}='JamesBond';>>b{1,2}=[12;34;56];>>b{2,1}=pi;>>b{2,2}=zeros(5);
2024/3/20ApplicationofMatlabLanguage68
2.5.1元胞數(shù)組的創(chuàng)建(續(xù))元胞數(shù)組的連接Exam:連接元胞數(shù)組a、b,生成元胞數(shù)組c。clearcc=[ab]%orc=[a;b]c=[3x3double]'AnneSmith''JamesBond'[3x2double][3.0000+7.0000i][1x21double][3.1416][5x5double]>>c=[a;b]Result?
2024/3/20ApplicationofMatlabLanguage69
2.5.1元胞數(shù)組的創(chuàng)建(續(xù))cell函數(shù)創(chuàng)建元胞數(shù)組>>b=cell(2,3)b=[][][][][][]>>whosbNameSizeBytesClassb2x324cellarray注意:每個(gè)cell占有4個(gè)字節(jié)的空間>>b(1,3)={1:3};%orb{1,3}=1:3;
2024/3/20ApplicationofMatlabLanguage70
2.5.2顯示元胞數(shù)組的內(nèi)容celldisp顯示元胞數(shù)組的全部內(nèi)容>>aa=[3x3double]'AnneSmith'[3.0000+7.0000i][1x21double]>>celldisp(a)%顯示全部內(nèi)容>>cellplot(a)%圖形方式顯示元胞數(shù)組的結(jié)構(gòu)
2024/3/20ApplicationofMatlabLanguage71
2.5.2顯示元胞數(shù)組的內(nèi)容(續(xù))使用內(nèi)容下標(biāo)索引顯示指定元胞的數(shù)據(jù)格式:var_name{row_index,column_index}
或
var_name{:}Example:>>a{1,2}…>>a{:}%一次顯示a的全部數(shù)據(jù)…
2024/3/20ApplicationofMatlabLanguage72
2.5.3讀取元胞數(shù)組中的內(nèi)容直接取用元胞數(shù)組的整個(gè)元胞(單元)取用元胞數(shù)組某元胞內(nèi)的數(shù)據(jù)單位一次讀取或刪除多個(gè)元胞
2024/3/20ApplicationofMatlabLanguage73
2.5.3讀取元胞數(shù)組中的內(nèi)容(續(xù))Exam:讀取上述b元胞數(shù)組的第1行、第2列元胞的內(nèi)容>>b,d=b{1,2}d=123456b='JamesBond'[3x2double][3.1416][5x5double]
2024/3/20ApplicationofMatlabLanguage74
2.5.3讀取元胞數(shù)組中的內(nèi)容(續(xù))Exam:
讀取b{1,2}的第3行、第1列的數(shù)據(jù)。>>
e=b{1,2}(3,1)e=5
讀取元胞數(shù)組元胞內(nèi)部分?jǐn)?shù)據(jù):元胞數(shù)組內(nèi)容索引,再加上一般數(shù)組的索引,即:var_name{row_ind,col_ind}(r_ind,c_ind)
2024/3/20ApplicationofMatlabLanguage75
2.5.3讀取元胞數(shù)組中的內(nèi)容(續(xù))Exam:
讀取元胞數(shù)組a第1行的所有元胞。>>f=a(1,:)f=
[3x3double]'AnneSmith'Exam:刪除元胞數(shù)組a第1行的所有元胞。>>a(1,:)=[]
a=
[3.0000+7.0000i][1x21double]Note:這里使用的是元胞索引(cellindexing),而不是內(nèi)容索引(contentindexing)
2024/3/20ApplicationofMatlabLanguage76
2.6.1結(jié)構(gòu)與結(jié)構(gòu)數(shù)組的概念結(jié)構(gòu)(structure)由字段(或域,fields)組成每個(gè)字段可以是任一種Matlab數(shù)據(jù)類型的數(shù)據(jù)或變量與C語言的結(jié)構(gòu)類型相似結(jié)構(gòu)數(shù)組(structurearray)多個(gè)結(jié)構(gòu)構(gòu)成結(jié)構(gòu)數(shù)組(structurearray)結(jié)構(gòu)數(shù)組的元素就是一個(gè)結(jié)構(gòu)
2024/3/20ApplicationofMatlabLanguage77
2.6.2結(jié)構(gòu)數(shù)組變量的創(chuàng)建方法一:直接鍵入Exam:創(chuàng)建一個(gè)關(guān)于學(xué)生信息的結(jié)構(gòu)數(shù)組,每個(gè)結(jié)構(gòu)包含學(xué)生姓名(name)、學(xué)號(id)、成績(scores)。
>>clearstudent
%清除student變量
>>='張三';
%加入name字段
>>student.id='mr871912';
%加入id字段
>>student.scores=[58,75,62]; %加入scores字段
>>student %顯示結(jié)構(gòu)變量的數(shù)據(jù)
student= name:'張三'
id:'mr871912' scores:[58,75,62]此時(shí),Matlab視
student為一個(gè)1x1結(jié)構(gòu)數(shù)組
2024/3/20ApplicationofMatlabLanguage78
2.6.2結(jié)構(gòu)數(shù)組變量的創(chuàng)建(續(xù))第二個(gè)學(xué)生的信息建立
>>student(2).name='張寧';
%加入name字段
>>student(2).id='mr871913';
%加入id字段
>>student(2).scores=[68,85,92];
%加入scores字段
>>student
%顯示變量信息student=1x2structarr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年全球及中國防爆安全門行業(yè)需求動(dòng)態(tài)及應(yīng)用前景預(yù)測報(bào)告
- 04年專利許可使用合同
- 2024-2030年全球及中國植物基半胱氨酸行業(yè)銷售動(dòng)態(tài)及前景趨勢預(yù)測報(bào)告
- 2024年房產(chǎn)抵押評估服務(wù)合同
- 2024年國家級科研項(xiàng)目承擔(dān)單位委托研究合同
- 2024-2030年全球及中國PVC游戲墊行業(yè)競爭態(tài)勢及銷售渠道策略報(bào)告
- 2024-2030年全球及中國26二氯苯酚行業(yè)銷售規(guī)模及供需前景預(yù)測報(bào)告
- 2024-2030年全球與中國髕骨假體行業(yè)供需趨勢及投資戰(zhàn)略研究報(bào)告版
- 2024-2030年全球與中國室內(nèi)垂直農(nóng)場行業(yè)發(fā)展動(dòng)態(tài)及投資規(guī)劃分析報(bào)告
- 2024-2030年中國鼓式剎車片行業(yè)發(fā)展?fàn)顩r及投資前景趨勢分析報(bào)告
- 北京市海淀區(qū)2024-2025學(xué)年高三第一學(xué)期期中練習(xí)語文試卷含答案
- 江蘇省徐州市銅山區(qū)2023-2024學(xué)年九年級上學(xué)期期中英語試卷(含答案解析)
- 大數(shù)據(jù)處理服務(wù)合同
- 天津市河西區(qū)2023-2024學(xué)年九年級上學(xué)期期中英語試題
- 8.3 法治社會(huì) 課件高中政治統(tǒng)編版必修三政治與法治
- 河北省唐山市灤南縣2024-2025學(xué)年七年級上學(xué)期10月期中數(shù)學(xué)試題
- GB/T 44653-2024六氟化硫(SF6)氣體的現(xiàn)場循環(huán)再利用導(dǎo)則
- GB/T 44540-2024精細(xì)陶瓷陶瓷管材或環(huán)材彈性模量和彎曲強(qiáng)度的測定缺口環(huán)法
- 道路交通安全法律法規(guī)
- 2024年新北師大版數(shù)學(xué)一年級上冊 第4單元 10以內(nèi)數(shù)加與減 第9課時(shí) 可愛的企鵝 教學(xué)課件
- 外研版(2019) 選擇性必修第四冊 Unit 5 Into the Unknown Understanding ideas教案
評論
0/150
提交評論