2017-06-20 10 views
1

を入れ替えして再構築するための短い方の方法は、私は、次の多次元配列を持っている:代替多次元アレイ

a(:,:,1) = 
    11 12 13 
    21 22 23 

a(:,:,2) = 
    21 22 23 
    31 32 33 

a(:,:,3) = 
    31 32 33 
    41 42 43 

次のように最終結果が見えます:

e = 
    11 21 31 
    12 22 32 
    13 23 33 
    21 31 41 
    22 32 42 
    23 33 43 

配列eを得るためには、I以下でした:

b=permute(a,[2,1,3]) 
c=reshape(b,1,6,[]) 
d=permute(c,[2,1,3]) 

達成のクリーナーまたはよりエレガントな方法はあります同じ結果ですか?ここで

答えて

2

は一度使用PERMUTE:あなたは、次のようにそれを行うことができます

b = permute(a,[2 1 3]); 
result = reshape(b, [], 3) 
+0

私はこの答えは最高の私の質問にフィットする感じ。貢献に感謝します。 – Crysthius

0

reshape([a(:,:,1);a(:,:,2);a(:,:,3)].',6,3)