MATLAB中如何定義多維矩陣?
matlab多維數組操作1.一個三維數組由行、列和頁三維組成,其中每一頁包含一個由行和列構成的二維數組。
2.利用標準數組函數創建多維數組A=zeros(4,3,2)生成一個4行3列2頁的三維全0數組,ones,rand和randn等函數有相似的用法。
3.利用直接索引方式生成多維數組A=zeros(2,3)A(:,:,2)=ones(2,3)A(:,:,3)=4上面的代碼先生成一個二維數組作為三維數組的第一頁,然后通過數組直接索引,添加第二頁、第三頁。
4.利用函數reshape和repmat生成多維數組B=reshape(A,2,9)B=[A(:,:,1)A(:,:,2)A(:,:,3)]%結果與上面一樣。
reshape(B,2,3,3)reshape(B,[233])%結果與上面一樣。提示:reshape函數可以將任何維數的數組轉變成其他維數的數組。5.利用repmat函數生成多維數組C=ones(2,3)repmat(C,[113])%repmat寫出類似reshape的repmat(C,1,1,3)將顯示出錯提示:repmat是通過數組復制創建多維數組的,上面的代碼即是將數組C在行維和列維分別復制一次,然后再頁維復制三次得到2×3×3的三維數組。6.利用cat函數創建多維數組a=zeros(2);b=ones(2);c=repmat(2,2,2);D=cat(3,a,b,c)%創建三維數組D=cat(4,a,b,c)%創建4維數組。D(:,1,:,:)%查看第一列的數據。size(D)%可以知道數組D的具體維數。6.數組運算與處理數組之間的運算要求兩個數組在任何一維都必須具有相同的大小。(1)squeeze函數用于刪除多維數組中的單一維(即大小為1的那些維)
E=squeeze(D)size(D)E的數據和D一樣,但比D少了一維,只有2行、2列和3頁。
(2)reshape函數可以將一個三維向量變成一維向量。v(1,1,:)=1:6squeeze(v)