Programming with MATLAB | ![]() ![]() |
サイズの変更
型、または、サイズを変更しない限り、MATLAB配列は、作成時に指定した次元を保持しています。要素を加えたり、削除することで配列のサイズを変更します。同じ要素を保持しながら、配列の行、列、ページの次元の再指定をして配列の形を変更することもできます。関数reshape
は、後者の操作を行います。多次元配列について、その形式は、つぎのようになります。
B = reshape(A,[s1 s2 s3
...])
s1
, s2
等は、変更される行列の各次元の希望するサイズを表わします。変更後の配列は、オリジナルの配列と同じ要素数をもたなければなりません(次元のサイズの積は一定になります)。
M |
reshape(M, [6 5]) |
![]() |
![]() |
関数reshape
は、列単位で操作します。オリジナルのデータ構造の各列から連続する要素を操作することで行列を変更します。
C |
reshape(C, [6 2]) |
![]() |
![]() |
B = reshape(nddata,[6 25]) C = reshape(nddata,[5 3 10]) D = reshape(nddata,[5 3 2 5])
1の次元(シングルトン)の削除
MATLABは、配列の作成や変更時に明示的に指定する場合や1次元の配列になる計算を行うときに、1の次元を作成します。
B = repmat(5,[2 3 1 4]); size(B) ans = 2 3 1 4
関数squeeze
は、配列から1の次元を取り除きます。
C = squeeze(B); size(C) ans = 2 3 4
関数squeeze
は、2次元配列に影響を与えません。行ベクトルは、行のまま残ります。
![]() |
インデックス付け | 配列の次元の並べ替え | ![]() |