Programming with MATLAB | ![]() ![]() |
配列の次元の並べ替え
関数permute
は、配列の次元の並べ替えを行います。
B = permute(A,dims);
dims
は、A
の次元に対して新しい順番を指定するベクトルです。ここで、1は1番目の次元(行)、2は2番目の次元(列)、3はページに対応します。
関数permute
のより詳細な観察として、サイズ
5-4-3-2 の配列A
を考えます。列の次元を1番目に、つぎに2ページ目の次元、1ページ目の次元、最後に行の次元になるように次元を再構成します。結果は、4-2-3-5
の配列になります。
行列の行と列の次元を入れ替える関数transpose
の拡張として、permute
の操作を考えることができます。permute
に対して、入力次元のリストの順序はサブスクリプトの並べ替えを決定します。上記の例では、A
の要素(4,2,1,2)
は、B
の要素(2,2,1,4)
になり、A
の要素(5,4,3,2)
は、B
の要素(4,2,3,5)
になります。
逆置換
関数ipermute
は、permute
の逆操作です。入力配列A
と次元のベクトルv
を与えると、ipermute
はpermute(B,v)
がA
を出力するような配列B
を出力します。
たとえば、つぎのステートメントは、入力配列C
と等価な配列E
を作成します。
D = ipermute(C,[1 4 2 3]); E = permute(D,[1 4 2 3])
同じ次元ベクトルを使って、ipermute
をコールして変換した後で、オリジナルの配列を得ることができます。
![]() |
サイズの変更 | 多次元配列の計算 | ![]() |