MATLAB中在一个三维矩阵中如何提取出一个二维矩阵,使用permute

 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

函数功能:在MATLABFreeMat中,该函数按指定的向量来重新排列一个数组

语法格式:
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];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/yuzhuwei/p/4217811.html