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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM