1 >> a=rand(2,3,4); 2 >> a 3 4 a(:,:,1) = 5 6 0.0878 0.4073 0.6183 7 0.6821 0.6563 0.3876 8 9 10 a(:,:,2) = 11 12 0.2322 0.2636 0.3777 13 0.7890 0.8359 0.1458 14 15 16 a(:,:,3) = 17 18 0.4592 0.0751 0.1429 19 0.6121 0.6748 0.8044 20 21 22 a(:,:,4) = 23 24 0.7069 0.5983 0.2846 25 0.7527 0.2629 0.0409 26 27 >> b=permute(a(:,1,:),[1 3 2]); % (:,1,:)表示取3列中(2,3,4)的第一個,[1 3 2]表示按矩陣變為[2,4,3]; 28 >> b 29 30 b = 31 32 0.0878 0.2322 0.4592 0.7069 33 0.6821 0.7890 0.6121 0.7527
函數功能:在MATLAB、FreeMat中,該函數按指定的向量來重新排列一個數組。
語法格式:
B = permute(A,order)
按照向量order指定的順序重排A的各維。B中元素和A中元素完全相同。但由於經過重新排列,在A、B訪問同一個元素使用的下標就不一樣了。order中的元素必須各不相同。
對b=permute(a(:,1,:),[1 3 2]);進行解釋:(:,1,:)表示取3列中(2,3,4)的第一個,[1 3 2]表示按矩陣變為[2,4,3];