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];