| 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をコールして変換した後で、オリジナルの配列を得ることができます。
| サイズの変更 | 多次元配列の計算 |