




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
矩陣的拆分1.矩陣元素對矩陣的單個元素進行賦值操作。例如,如果想將矩陣A的第2行第3列的元素賦為76,則可以通過下面語句來完成:
A(2,3)=76
這時將只改變該元素的值,而不影響其他元素的值。如果給出的行下標或列下標大于原來矩陣的行數(shù)和列數(shù),則MATLAB將自動擴展原來的矩陣,并將擴展后未賦值的矩陣元素置為零。矩陣的拆分例如:A=[1,2,3;4,5,6];A(4,6)=100A=123000456000000000000001001.7.3矩陣的拆分
在MATLAB中,也可以采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號就是相應(yīng)元素在內(nèi)存中的排列順序。矩陣元素按列編號,先第1列,再第2列,依次類推。例如:
A=[10,20,30;40,50,60];A(3)ans=201.7.3矩陣的拆分
序號(Index)與下標(Subscript)是一一對應(yīng)的,以m
×
n矩陣A為例,矩陣元素A(i,j)的序號為(j?1)*m
+
i。其相互轉(zhuǎn)換關(guān)系也可利用sub2ind和ind2sub函數(shù)求得。例如:sub2ind(size(A),1,3)ans=5size(A)函數(shù)返回包含兩個元素的向量,分別是矩陣A的行數(shù)和列數(shù),即A是2行3列的矩陣,其中第1行第3列元素的序號為5。1.7.3矩陣的拆分[I,j]=ind2sub(size(A),5)I=1j=3length(A):給出行數(shù)和列數(shù)中的較大者,即length(A)=max(size(A))ndims(A):給出A的維數(shù)1.7.3矩陣的拆分Reshape(A,m,n):在矩陣總元素保持不變的前提下,將矩陣A重新排成m×n的二維矩陣。例如:X=linspace(0,11,12)*pi;%產(chǎn)生有12個元素的行向量xY=reshape(X,3,4)%利用向量x建立3×4矩陣yY=1.7.3矩陣的拆分2.矩陣的拆分(1)利用冒號表達式獲得子矩陣①A(m,n)表示取A矩陣第m行、第n列的元素,A(m,:)表示取A矩陣第m行的全部元素,A(:,n)表示取A矩陣的第n列全部元素。例如A=1:2:5;B=[A;2*A,3*A]B=135261039151.7.3矩陣的拆分B(2,:)ans=2610B(:,3)ans=510151.7.3矩陣的拆分②A(m1:m2,:)表示取A矩陣第m1~m2行的全部元素,A(:,n1:n2)表示取A矩陣第n1~n2列的全部元素,A(m1:m2,n1:n2)表示取A矩陣第m1~m2行內(nèi),并在第n1~n2列中的所有元素。例如:A=[12345;678910;1112131415;1617181920]A=12345678910111213141516171819201.7.3矩陣的拆分A(2:3,4:5)ans=9101415A(2:3,1:2:5)ans=68101113151.7.3矩陣的拆分③A(:)將矩陣A每一列元素堆疊起來,成為一個列向量,這也是MATLAB變量的內(nèi)部存儲方式。例如:A=[-456571;273591]A=-456571273591B=A(:)B=-4527653571911.7.3矩陣的拆分④利用一般向量和end運算符來表示矩陣下標,從而獲得子矩陣。end表示某一維的末尾元素下標。例如:A=[12345;678910;1112131415;1617181920];>>A(end,:)%取A最后一行元素ans=1617181920>>A([1,4],3:end)%取A第1,4兩行中第3列到最后一列的元素ans=3451819201.7.3矩陣的拆分(2)利用空矩陣刪除矩陣的元素
在MATLAB中,空矩陣是指無任何元素的矩陣,表示形式為[]。給變量x賦空矩陣的語句為
x=[]
將某些元素從矩陣中刪除,采用將其置為空矩陣的方法就是一種有效的方法。例如:
A=[123456;789101112;131415161718];A(:,[24])=[]A=135679111213151718
其中第2條命令將刪除A的第2列和第4列元素。1.7.4算術(shù)運算1.基本算術(shù)運算
MATLAB的基本算術(shù)運算有:+(加)、?(減)、*(乘)、/(右除)、\(左除)、^(乘方)。(1)矩陣加減運算
運算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運算,A和B矩陣的相應(yīng)元素相加減。如果A與B的維數(shù)不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數(shù)不匹配。1.7.4算術(shù)運算
一個標量也可以和其他不同維數(shù)的矩陣進行加減運算。例如:x=[2,-1,0;3,2,-4];y=x-1y=1-2-121-5y=y+xy=3-3-153-91.7.4算術(shù)運算(2)矩陣乘法
矩陣A和B進行乘法運算,要求A的列數(shù)與B的行數(shù)相等,或稱A和B兩矩陣維數(shù)相容。如果兩者的維數(shù)不相容,則將給出錯誤信息,提示用戶兩個矩陣是不可乘的。例如:
A=[1,2,3;4,5,6];B=A*A???Errorusing==>mtimesInnermatrixdimensionsmustagree.
在MATLAB中,還可以進行矩陣和標量相乘,標量可以是乘數(shù)也可以是被乘數(shù)。矩陣和標量相乘是矩陣中的每個元素與此標量相乘。1.7.4算術(shù)運算(3)矩陣除法
在MATLAB中,有兩種矩陣除法運算:\和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則A\B和B/A運算可以實現(xiàn)。A\B等效于A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)。1.7.4算術(shù)運算例如:>>a=[123;426;749];>>b=[432;751;12792];>>c1=b\ac1=>>c2=b/ac2=1.7.4算術(shù)運算(4)矩陣的乘方和平方根
一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標量。例如:A=[123;456;780];>>A^2ans=3036156681423954691.7.4算術(shù)運算
用sqrtm函數(shù)求取矩陣的平方根。其調(diào)用格式:X=sqrtm(A):求矩陣A的平方根X,即X*X=A。[X,resnorm]=sqrtm(A):不生成任何警告信息,并返回殘差norm(A-X^2,’fro’)/norm(A,’fro’)[X,alpha,condest]=sqrtm(A):返回穩(wěn)定性因子alpha和X矩陣平方根條件數(shù)的估計condest.1.7.4算術(shù)運算例如:>>a=[134;265;324];>>c=sqrtm(a)c=1.7.4算術(shù)運算(4)矩陣的指數(shù)和對數(shù)
矩陣的指數(shù)運算用函數(shù)expm實現(xiàn),對數(shù)運算用函數(shù)logm實現(xiàn)。例如:
>>a=[134;265;324];>>d=expm(a)d=1.0e+004*>>e=logm(a)e=1.7.4算術(shù)運算2.點運算兩矩陣進行點運算是指它們的對應(yīng)元素進行相關(guān)運算,要求兩矩陣的維參數(shù)相同。點運算符有.*、./、.\和.^。例如:A=[1,2,3;4,5,6;7,8,9];B=[-1,0,1;1,-1,0;0,1,1];C=A.*BC=-1034-500891.7.4算術(shù)運算
如果A、B兩矩陣具有相同的維數(shù),則A./B表示A矩陣除以B矩陣的對應(yīng)元素。B.\A等價于A./B。>>x=[123;456];>>y=[-213;-114];>>z1=x./yz1=>>z2=y.\xz2=1.7.4算術(shù)運算
指數(shù)也可以是標量。例如:x=[123;456];>>z=x.^2z=149
1625361.7.4算術(shù)運算
底也可以是標量。例如:>>x=[123];>>y=[456];>>z1=2.^[x,y]z1=248163264>>z2=2.^[x;y]z2=2481632641.7.4算術(shù)運算MATLAB常用數(shù)學(xué)函數(shù)1.7.4算術(shù)運算(1)函數(shù)的自變量規(guī)定為矩陣變量,運算法則是將函數(shù)逐項作用于矩陣的元素上,因而運算的結(jié)果是一個與自變量同維數(shù)的矩陣。例如:y=sin(0:pi/2:2*pi)y=y=abs(y)y=當y
≠
0時,rem(x,y)
=
x
?
y.(1)將矩陣A第2~5行中第1、3、5列元素賦給矩陣B;x=[123;456];建立多行字符串矩陣。Y=reshape(X,3,4)%利用向量x建立3×4矩陣y000B=[5,324,7,-43,76];MATLAB常用數(shù)學(xué)函數(shù)C2=xor(A>10,B<10)相反,char函數(shù)可以把ASCII矩陣轉(zhuǎn)換為字符串矩陣。67),floor(-13.(1)若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標量規(guī)則逐個進行。對矩陣的單個元素進行賦值操作。1.7.4算術(shù)運算(2)abs函數(shù)可以求實數(shù)的絕對值、復(fù)數(shù)的模、字符串的ASCII碼值。x=[-3.14,3+4i];abs(x)ans=1.7.4算術(shù)運算(3)用于取整的函數(shù)有fix、floor、ceil、round,要注意它們的區(qū)別。例如:x=[fix(13.37),floor(13.37),ceil(13.37),round(13.37)]x=13131413x=[fix(-13.67),floor(-13.67),ceil(-13.67),round(-13.67)]x=-13-14-13-141.7.4算術(shù)運算
(4)rem與mod函數(shù)的區(qū)別。rem(x,y)和mod(x,y)要求x,y必須為相同大小的實矩陣或為標量。當y
≠
0時,rem(x,y)
=
x
?
y.*fix(x./y)
而mod(x,y)
=
x
?y.*floor(x./y);當y
=
0時,rem(x,0)
=
NaN,而mod(x,0)
=
x。顯然,當x,y同號時,rem(x,y)與mod(x,y)相等。rem(x,y)的符號與x相同,而mod(x,y)的符號與y相同。1.7.4算術(shù)運算例如:x=5;y=3;[rem(x,y),mod(x,y)]ans=22x=-5;y=3;[rem(x,y),mod(x,y)]ans=-211.7.5關(guān)系運算
MATLAB提供了6種關(guān)系運算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、=
=(等于)、~=(不等于)。(1)當兩個比較量是標量時,直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達式結(jié)果為1,否則為0。例如:A=5A=5A=A==10A=0123000③A(:)將矩陣A每一列元素堆疊起來,成為一個列向量,這也是MATLAB變量的內(nèi)部存儲方式。(2)將字符串中的小寫字母變成相應(yīng)的大寫字母,其余字符不變。A=[1,2,3;4,5,6];10k=find(ch>='a'&ch<='z'); %找小寫字母的位置將ASCII碼值轉(zhuǎn)換成字符串例如,如果想將矩陣A的第2行第3列的元素賦為76,則可以通過下面語句來完成:A=[12345;678910;1112131415;1617181920];(1)將矩陣A第2~5行中第1、3、5列元素賦給矩陣B;向量中任何一個元素非零,都給出結(jié)果1若元素是nan,則結(jié)果矩陣相應(yīng)位置元素取1,否則取0(3)邏輯非是單目運算符,也服從矩陣運算規(guī)則。一、在一個MATLAB命令中,3+4i和3+4*i有何區(qū)別?3915x=[2,-1,0;3,2,-4];1.7.5關(guān)系運算(2)當參與比較的量是兩個維數(shù)相同的矩陣時,比較是對兩矩陣相同位置的元素按標量關(guān)系運算規(guī)則逐個進行,并給出元素的比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。1.7.5關(guān)系運算例如:
>>A=[123;456];>>B=[314;5210];>>A>Bans=010010>>C=A~=BC=1111111.7.5關(guān)系運算(3)當參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關(guān)系運算規(guī)則逐個比較,并給出元素比較結(jié)果。最終的運算結(jié)果是一個維數(shù)與矩陣相同的矩陣,它的元素由0或1組成。1.7.5關(guān)系運算例如:>>A=[314;5210];>>B=A>4B=0001011.7.6邏輯運算MATLAB提供了3種邏輯運算符:&(與)、|(或)和~(非)。此外,MATLAB還提供了4個邏輯運算函數(shù):and(a,b)、or(a,b)、not(a)和xor(a,b)。在邏輯運算中,確認非零元素為真,用1表示;非零元素為假,用0表示。設(shè)參與邏輯運算的是兩個標量a和b,那么,邏輯運算符和邏輯運算函數(shù)的含義如下:1.7.6邏輯運算●a&b或函數(shù)and(a,b)表示a和b作邏輯與運算,當a、b全為非零時,運算結(jié)果為1,否則為0?!?a|b或函數(shù)or(a,b)表示a和b作邏輯或運算,當a、b中只要有一個非零,運算結(jié)果為1?!?~a和函數(shù)not(a)表示對a作邏輯非運算,當a是零時,運算結(jié)果為1;當a非零時,運算結(jié)果為0?!?函數(shù)xor(a,b)表示a和b作邏輯異或運算,當a、b的值不同時,運算結(jié)果為1,否則運算結(jié)果為0。1.7.6邏輯運算(1)若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標量規(guī)則逐個進行。最終運算結(jié)果是一個與原矩陣同維的矩陣,其元素由1或0組成。例如:A=[23,54,12,6,-78];B=[5,324,7,-43,76];C1=A>10&B<10C1=10100C2=xor(A>10,B<10)C2=010101.7.6邏輯運算(2)若參與邏輯運算的一個是標量,一個是矩陣,那么運算將在標量與矩陣中的每個元素之間按標量規(guī)則逐個進行。最終運算結(jié)果是一個與矩陣同維的矩陣,其元素由1或0組成。例如:>>a=[2354;126-78];>>b=~a|1&a>0b=1110(3)邏輯非是單目運算符,也服從矩陣運算規(guī)則。1.7.6邏輯運算在算術(shù)、關(guān)系、邏輯運算中,算術(shù)運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。函數(shù)名含義all若向量的所有元素非零,則結(jié)果為1any向量中任何一個元素非零,都給出結(jié)果1exist檢查變量在工作空間是否存在,存在,結(jié)果為1,否則為0find找出向量或矩陣中非零元素的位置isempty若被查變量是空陣,則結(jié)果為1isglobal若被查變量時全局變量,則結(jié)果1isinf若元素是±inf,則結(jié)果矩陣相應(yīng)位置元素取1,否則取0isnan若元素是nan,則結(jié)果矩陣相應(yīng)位置元素取1,否則取0isfinite若元素值大小有限,則則結(jié)果矩陣相應(yīng)位置元素取1,否則取0issparse若變量是稀疏矩陣,則結(jié)果矩陣相應(yīng)位置元素取1,否則取0isstr若變量是字符串,則結(jié)果矩陣相應(yīng)位置元素取1,否則取01.7.6邏輯運算【例】建立矩陣A,然后找出在
[10,20]
區(qū)間的元素的位置。A=[4,15,-45,10,6;56,0,17,-45,0]A=415-4510656017-450find(A>=10&A<=20)ans=3671.8字符串
字符串的每個字符都是字符矩陣的一個元素。其構(gòu)建方式是通過單撇號括起來的字符序列來實現(xiàn)的。例如:
xm='Beijing2008'xm=Beijing2008MATLAB將一個字符串當作一個行向量,每個元素對應(yīng)一個字符,其標識方法和數(shù)值向量相同。1.8字符串
建立多行字符串矩陣。多行字符串要求各行字符數(shù)要相等。可以用空格調(diào)節(jié)各行的長度。例如:
ch=['abcdef';'123456']ch=abcdef123456
字符串是以ASCII形式存儲的。abs和double函數(shù)都可以用來獲取字符串矩陣所對應(yīng)的ASCII數(shù)值矩陣。相反,char函數(shù)可以把ASCII矩陣轉(zhuǎn)換為字符串矩陣。1.8字符串【例】建立一個字符串向量,然后對該向量做如下處理。(1)取第12~18個字符組成的子字符串。(2)將字符串中的小寫字母變成相應(yīng)的大寫字母,其余字符不變。(3)統(tǒng)計字符串中小寫字母的個數(shù)。命令如下:ch='WelcometoBeijing';subch=ch(12:18) %取子字符串>>subch=ch(12:18)subch=Beijing53-9A=[-456571;273591]相反,char函數(shù)可以把ASCII矩陣轉(zhuǎn)換為字符串矩陣。end表示某一維的末尾元素下標。1356Y=reshape(X,3,4)%利用向量x建立3×4矩陣y向量中任何一個元素非零,都給出結(jié)果120關(guān)于字符串的寫法,還要注意:Y=reshape(X,3,4)%利用向量x建立3×4矩陣y163264若元素是±inf,則結(jié)果矩陣相應(yīng)位置元素取1,否則取011(1)若字符串中的字符含有單撇號,則該單撇號字符應(yīng)用兩個單撇號來表示。矩陣A和B進行乘法運算,要求A的列數(shù)與B的行數(shù)相等,或稱A和B兩矩陣維數(shù)相容。查找匹配的字符串所在的位置若被查變量時全局變量,則結(jié)果11.8字符串k=find(ch>='a'&ch<='z'); %找小寫字母的位置ch(k)=ch(k)-('a'-'A'); %將小寫字母變成相應(yīng)的大寫字母char(ch)ans=WELCOMETOBEIJINGlength(k)%統(tǒng)計小寫字母的個數(shù)ans=141.8字符串把字符串的內(nèi)容作為對應(yīng)的MATLAB語句來執(zhí)行的函數(shù)是eval.eval(t)其中t為字符串。例如:x=3;y=4;m='[sqrt(x*x+y*y),x+y]';y=ev
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 10713:2025 EN Jewellery and precious metals - Gold alloy coatings
- T-ZHAQ 8-2024 小葉牛大力種植技術(shù)規(guī)程
- 二零二五年度應(yīng)屆大學(xué)生人力資源實習(xí)合同
- 二零二五年度股票投資風(fēng)險控制與合規(guī)監(jiān)督協(xié)議
- 二零二五年度個人債權(quán)轉(zhuǎn)讓協(xié)議書(關(guān)于專利權(quán)轉(zhuǎn)讓)
- 高管二零二五年度勞動合同及離職交接程序
- 二零二五年度路橋工程土地征用與拆遷合同
- 美容院合伙人投資回報與風(fēng)險控制協(xié)議書(2025年度)
- 2025年度金融借款合同違約起訴流程及費用結(jié)算合同
- 2025年度餐飲企業(yè)跨界合作合伙經(jīng)營合同
- 六年級心理健康ppt名師優(yōu)質(zhì)課獲獎市賽課一等獎?wù)n件
- 四川輕化工大學(xué)
- 六西格瑪質(zhì)量管理在口腔科器械管理中的作用
- 高中心理健康教育-認識自我悅納自我教學(xué)課件設(shè)計
- 素材合集-扁平化圖標素材(彩色)
- (全)電梯安全風(fēng)險管控清單
- 中國思想史 馬工程329P
- 《網(wǎng)店美工》教案-商品詳情頁設(shè)計
- 原始狩獵圖哀郢楚商
- 新版冀教版(冀人版)科學(xué)五年級下冊全冊教案
- 烏茲別克斯坦
評論
0/150
提交評論