回覆列表
  • 1 # azgmn23173

    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,[2 3 3]) %結果與上面一樣。提示:reshape函式可以將任何維數的陣列轉變成其他維數的陣列。5.利用repmat函式生成多維陣列C=ones(2,3)repmat(C,[1 1 3]) % 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:6 squeeze(v)

  • 中秋節和大豐收的關聯?
  • 夢幻西遊符石組合表?