matlab中數(shù)組元素引用.doc_第1頁(yè)
matlab中數(shù)組元素引用.doc_第2頁(yè)
matlab中數(shù)組元素引用.doc_第3頁(yè)
matlab中數(shù)組元素引用.doc_第4頁(yè)
matlab中數(shù)組元素引用.doc_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Matlab中數(shù)組元素引用有三種方法:1.下標(biāo)法(subscripts)2.索引法(index)3.布爾法(Boolean)在使用這三種方法之前,大家頭腦一定要清晰的記住,Matlab中數(shù)組元素是按列存儲(chǔ)(與Fortran一樣),比如說(shuō)下面的二維數(shù)組A= 8 1 6 3 5 7 4 9 2Matlab的存儲(chǔ)順序是8,3,4,1,5,9,6,7,2,也就是說(shuō)先行后列,對(duì)于3維數(shù)組呢,就是先行后列再頁(yè)對(duì)應(yīng)個(gè)元素的索引和下標(biāo)分別為Element Index Subscripts8 1 (1,1)3 2 (2,1)4 3 (3,1)1 4 (1,2)5 5 (2,2)9 6 (3,2)6 7 (1,3)7 8 (2,3)2 9 (3,3)從上面的例子中已經(jīng)很清晰的說(shuō)明了下標(biāo)和索引的區(qū)別了,也就是說(shuō)Matlab為沒(méi)有個(gè)元素分配了一個(gè)唯一識(shí)別的ID(即index)1.下標(biāo)法引用A(ii,jj):其中ii和jj可以是一維向量、標(biāo)量、“:”號(hào)或者“end”大家對(duì)下標(biāo)估計(jì)比較熟悉,由于在C語(yǔ)言中接觸過(guò),但是我這里需要強(qiáng)調(diào)的是,Matlab的下標(biāo)是可以多行多列同時(shí)引用的,而像C語(yǔ)言等一次只能引用一個(gè),比如A(2:3,3:-1:1)表示引用數(shù)組中的23行,31列對(duì)應(yīng)的元素A(:,end)表示引用最后一列元素,“:”表示所有列或行,“end”表示最后一列或列,“end-n”表示倒數(shù)第n行或列A(1,end-1)表示引用第1行倒數(shù)第2個(gè)元素A(2 1 3 3,1 1 2 2 1)表示引用按兩個(gè)向量引用指定的元素,即A中的第2,1,3,3行和第1,1,2,2,1列對(duì)應(yīng)的元素A=magic(3)A = 8 1 6 3 5 7 4 9 2A(2:3,3:-1:1)ans = 7 5 3 2 9 4A(:,end)ans = 6 7 2A(1,end-1)ans = 1A(2 1 3 3,1 1 2 2 1)ans = 3 3 5 5 3 8 8 1 1 8 4 4 9 9 4 4 4 9 9 42.索引法引用(說(shuō)白了索引就是存儲(chǔ)順序)A(index):index可以是任意的數(shù)組,index的元素必須是正整數(shù),且不大于numel(A),返回的是一個(gè)尺寸與index一樣的數(shù)組下標(biāo)和索引之間可以通過(guò)ind2sub和sub2ind函數(shù)相互轉(zhuǎn)換,具體可以看幫助,很簡(jiǎn)單I,J = ind2sub(siz,IND)IND = sub2ind(siz,I,J)還有使用A(:)就可以將數(shù)組A轉(zhuǎn)換為列向量A(8):表示引用A的第8個(gè)元素B=A(1 10 5 2 2 1 3):表示依次引用A的第1,10,5,2,2,1,3個(gè)元素,返回與index尺寸相同的數(shù)組,也就是說(shuō)size(B)=size(index)A(2 5 9;1 1 1;8 5 6):返回的時(shí)侯是一個(gè)3*3的矩陣A=magic(5)%括號(hào)中為索引值A(chǔ) = 17 (1) 24 (6) 1 (11) 8 (16) 15 (21) 23 (2) 5 (7) 7 (12) 14 (17) 16 (22) 4 (3) 6 (8) 13 (13) 20 (18) 22 (23) 10 (4) 12 (9) 19 (14) 21 (19) 3 (24) 11 (5) 18 (10) 25 (15) 2 (20) 9 (25)A(8)ans = 6A(1 10 5 2 2 1 3)ans = 17 18 11 23 23 17 4A(2 5 9;1 1 1;8 5 6)ans = 23 11 12 17 17 17 6 11 243.布爾法引用A(X):X是一個(gè)有0和1組成布爾型數(shù)據(jù),且size(A)=size(X),對(duì)應(yīng)位置為1則留下該數(shù)據(jù),0則去掉,最后按A中的存儲(chǔ)順序,返回一個(gè)列向量假如說(shuō)A是3*3的數(shù)組A(logical(1 0 0;0 1 0;0 0 1):表示引用了數(shù)組A的對(duì)角線元素,注意必須使用logical將0/1數(shù)組轉(zhuǎn)換為布爾型A=magic(3)%生成一個(gè)3*3的數(shù)組A= 8 1 6 3 5 7 4 9 2x=logical(1 1 0;0 1 1;1 0 1)%將double轉(zhuǎn)化為boolean型數(shù)據(jù)x = 1 1 0 0 1 1 1 0 1A(x)%引用對(duì)應(yīng)位置為1的數(shù)據(jù),返回列向量ans = 8 4 1 5 7 2x=A5%是有了比較語(yǔ)句,返回布爾型數(shù)據(jù),對(duì)應(yīng)位置數(shù)據(jù)大于5的為1,否則為0x = 1 0 1 0 0 1 0 1 0A(x)%返回大于A中大于5的元素,其實(shí)該命令可以一次性執(zhí)行A(A5)或者find(A5),前者返回具體元素,后者返回大于5的數(shù)據(jù)的索引值ans = 8 9 6 7A(A5)%一次性執(zhí)行上面的命令ans = 8 9 6 7indx=find(A5)%查找A中對(duì)于5的元素,返回它們的索引(index)值,此時(shí)我們可以通過(guò)A(index)返回具體的元素index = 1 6 7 8增加內(nèi)容1、向量的創(chuàng)建1)直接輸入:行向量:a=1,2,3,4,5列向量:a=1;2;3;4;52)用“:”生成向量a=J:K 生成的行向量是a=J,J+1,Ka=J:D:K 生成行向量a=J,J+D,J+m*D,m=fix(K-J)/D)3)函數(shù)linspace 用來(lái)生成數(shù)據(jù)按等差形式排列的行向量x=linspace(X1,X2):在X1和X2間生成100個(gè)線性分布的數(shù)據(jù),相鄰的兩個(gè)數(shù)據(jù)的差保持不變。構(gòu)成等差數(shù)列。x=linspace(X1,X2,n): 在X1和X2間生成n個(gè)線性分布的數(shù)據(jù),相鄰的兩個(gè)數(shù)據(jù)的差保持不變。構(gòu)成等差數(shù)列。4)函數(shù)logspace用來(lái)生成等比形式排列的行向量X=logspace(x1,x2) 在x1和x2之間生成50個(gè)對(duì)數(shù)等分?jǐn)?shù)據(jù)的行向量。構(gòu)成等比數(shù)列,數(shù)列的第一項(xiàng)x(1)=10x1,x(50)=10x2 X=logspace(x1,x2,n) 在x1和x2之間生成n個(gè)對(duì)數(shù)等分?jǐn)?shù)據(jù)的行向量。構(gòu)成等比數(shù)列,數(shù)列的第一項(xiàng)x(1)=10x1,x(n)=10x2注:向量的的轉(zhuǎn)置:x=(0,5)2、矩陣的創(chuàng)建1)直接輸入:將數(shù)據(jù)括在中,同一行的元素用空格或逗號(hào)隔開(kāi),每一行可以用回車(chē)或是分號(hào)結(jié)束如:a=1,2,3;3,4,5,運(yùn)行后:a = 1 2 3 3 4 52)函數(shù)eye,生成單位矩陣eye(n) :生成n*n階單位Eeye(m,n):生成m*n的矩陣E,對(duì)角線元素為1,其他為0eye(size(A):生成一個(gè)矩陣大小相同的單位矩陣eye(m,n,classname):對(duì)角線上生成的元素是1,數(shù)據(jù)類型用classname指定。其數(shù)據(jù)類型可以是:duoble、single、int8、uint8、int16、uint16、int32、uint32 。3)函數(shù)ones 用ones生成全1的矩陣ones(n) : 生成n*n的全1矩陣ones(m,n) : 生成m*n的全1矩陣ones(size(A) : 生成與矩陣A大小相同的全1矩陣ones(m,n,p,)生成m*n*p*.的全1的多維矩陣ones(m,n,classname)制定數(shù)據(jù)類型為classname4)函數(shù)zeros 函數(shù)zeros生成全0矩陣zeros(n):生成n*n的全0矩陣zeros(m,n:)生成m*n的全0矩陣zeros(size(A): 生成與矩陣A大小相同的全0矩陣zeros (m,n,p,)生成m*n*p*.的全0的多維矩陣zeros (m,n,classname)指定數(shù)據(jù)類型為classname5)函數(shù)rand 函數(shù)rand用來(lái)生成0,1之間均勻分布的隨機(jī)函數(shù),其調(diào)用格式是:Y=rand:生成一個(gè)隨機(jī)數(shù)Y=rand(n):生成n*n的隨機(jī)矩陣Y=rand(m,n):生成m*n的隨機(jī)矩陣Y=rand(size(A):生成與矩陣A大小相同的隨機(jī)矩陣Y=rand(m,n,p,):生成m*n*p*的隨機(jī)數(shù)多維數(shù)組6)函數(shù)randn 函數(shù)rand用來(lái)生成服從正態(tài)分布的隨機(jī)函數(shù),其調(diào)用格式是:Y=randn:生成一個(gè)服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù)Y=randn(n):生成n*n的服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)矩陣Y=randn(m,n):生成m*n的服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)矩陣Y=randn(size(A):生成與矩陣A大小相同的服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)矩陣Y=randn(m,n,p,):生成m*n*p*的服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù)多維數(shù)組3、矩陣元素的提取與替換1) 單個(gè)元素的提取如:a=1,2,3;3,4,5,運(yùn)行后:a = 1 2 3 3 4 5輸入b=a(1,2)b = 22) 提取矩陣中某一行的元素,如:a=1,2,3;3,4,5,運(yùn)行后:a = 1 2 3 3 4 5輸入b=a(1,:)b = 1 2 33) 提取矩陣中某一列:如:a=1,2,3;3,4,5,運(yùn)行后:a = 1 2 3 3 4 5輸入b=a(:,1)b = 1 34) 提取矩陣中的多行元素如:a=1,2,3;3,4,5,運(yùn)行后:a = 1 2 3 3 4 5輸入b=a(1,2,:)b = 1 2 3 3 4 55) 提取矩陣中的多列元素如:a=1,2,3;3,4,5,運(yùn)行后:a = 1 2 3 3 4 5輸入b=a(:,1,3)b = 1 3 3 56) 提取矩陣中多行多列交叉點(diǎn)上的元素如:a=1,2,3;3,4,5,運(yùn)行后:a = 1 2 3 3 4 5輸入b=a(1,2,1,3)b = 1 3 3 57) 單個(gè)元素的替換:如:a=1,2,3;3,4,5,運(yùn)行后:a = 1 2 3 3 4 5輸入:a(2,3)=-1a = 1 2 3 3 4 -14、矩陣元素的重排和復(fù)制排列1) 矩陣元素的重排B=reshape(A,m,n):返回的是一個(gè)m*n矩陣B,矩陣B的元素就是矩陣A的元素,若矩陣A的元素不是m*n個(gè)則提示錯(cuò)誤。B=reshape(A,m,n,p):返回的是一個(gè)多維的數(shù)組B,數(shù)組B中的元素個(gè)數(shù)和矩陣A中的元素個(gè)數(shù)相等B=reshape(A,):可以默認(rèn)其中的一個(gè)維數(shù)B=reshape(A,siz) : 由向量siz指定數(shù)組B的維數(shù),要求siz的各元素之積等于矩陣A的元素個(gè)數(shù)2) 矩陣的復(fù)制排列 函數(shù)是repmatB=repmat(A,n):返回B是一個(gè)n*n塊大小的矩陣,每一塊矩陣都是AB=repmat(A,m,n):返回值是由m*n個(gè)塊組成的大矩陣,每一個(gè)塊都是矩陣A。B=repmat(A,m,n,p,):返回值B是一個(gè)多維數(shù)組形式的塊,每一個(gè)塊都是矩陣A5、矩陣的翻轉(zhuǎn)和旋轉(zhuǎn)1)矩陣的左右翻轉(zhuǎn) 左右翻轉(zhuǎn)函數(shù)是fliplr,調(diào)用格式:B=fliplr(A):將矩陣A左右翻轉(zhuǎn)成矩陣B。輸入:A=1,2,3;3,4,2A = 1 2 3 3 4 2輸入:B=fliplr(A)B = 3 2 12 4 32)矩陣上下翻轉(zhuǎn) 函數(shù):flipud,調(diào)用格式:B=flipud(A):把矩陣A上下翻轉(zhuǎn)成矩陣B3) 多維數(shù)組翻轉(zhuǎn) 函數(shù):flipdim,調(diào)用格式:B=flipdim(A,dim):把矩陣或多維數(shù)組A沿指定維數(shù)翻轉(zhuǎn)成B4) 矩陣的旋轉(zhuǎn) 函數(shù):rot90,調(diào)用格式:B=rot90(A):矩陣B是矩陣A沿逆時(shí)針?lè)较蛐D(zhuǎn)90。得到的B=rot90(A,k):矩陣B是矩陣A沿逆時(shí)針?lè)较蛐D(zhuǎn)k*90。得到的(要想順時(shí)針旋轉(zhuǎn),k取-1)6、矩陣的生成與提取函數(shù)1) 對(duì)角線函數(shù) 對(duì)角線函數(shù)diag既可以用來(lái)生成矩陣,又可以來(lái)提取矩陣的對(duì)角線元素,其調(diào)用格式:a) A=diag(v,k):當(dāng)v是有n個(gè)元素的向量,返回矩陣A是行列數(shù)為n+|k|的方陣。向量v的元素位于A的第k條對(duì)角線上。K=0 對(duì)應(yīng)主對(duì)角線,k0對(duì)應(yīng)主對(duì)角線以上,k0對(duì)應(yīng)主對(duì)角線以上,k0對(duì)應(yīng)主對(duì)角線以上,k catCAT arguments dimensions are not consistent.5、permute函數(shù)改變維的次序。h=permute(u,3,2,1) %將原來(lái)的第三維變?yōu)榈谝痪S,而原來(lái)的第一維改成第三維h(:,:,1) =1 25 6h(:,:,2) =3 47 8h(:)ans =15263748我們注意到數(shù)據(jù)的物理存儲(chǔ)次序發(fā)生了變化。6、iper

溫馨提示

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

評(píng)論

0/150

提交評(píng)論