ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

reshape

構文

B = reshape(A,sz)
B = reshape(A,sz1,...,szN)

説明

B = reshape(A,sz) は、A の形状をサイズ ベクトル sz で定義される size(B) に変更します。たとえば reshape(A,[2,3])A を 2 行 3 列の行列に形状変更します。sz には少なくとも 2 つの要素が必要で、prod(sz)numel(A) と同じでなければなりません。

B = reshape(A,sz1,...,szN) は、A の形状を sz1 x ... x szN の配列に変更します。sz1,...,szN は各次元のサイズを示します。1 つの次元のサイズを [] として指定すると、その次元のサイズを自動で計算することができます。B の要素の数が A の要素の数と一致するようにサイズが計算されます。たとえば A が 10 行 10 列の行列の場合、reshape(A,2,2,[]) と指定すると A の 100 個の要素から 2 x 2 x 25 の配列が生成されます。

すべて折りたたむ

1 行 10 列のベクトルを 5 行 2 列の行列に形状変更します。

A = 1:10;
B = reshape(A,[5,2])
B = 5×2

     1     6
     2     7
     3     8
     4     9
     5    10

4 行 4 列の正方行列の形状を、2 列の行列に変更します。最初の次元を [] として指定して、適切な行数を reshape で自動計算します。

A = magic(4)
A = 4×4

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

B = reshape(A,[],2)
B = 8×2

    16     3
     5    10
     9     6
     4    15
     2    13
    11     8
     7    12
    14     1

結果は 8 行 2 列の行列となります。この行列の要素の数は元の行列と同じになります。B の要素の列方向の順序も A の順序が維持されます。

3 x 2 x 3 のゼロ配列を 9 行 2 列の行列に形状変更します。

A = zeros(3,2,3);
B = reshape(A,9,2)
B = 9×2

     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0

入力引数

すべて折りたたむ

入力配列。ベクトル、行列または多次元配列として指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | datetime | duration | calendarDuration
複素数のサポート: あり

出力サイズ。整数の行ベクトルとして指定します。sz の各要素は B の対応する次元のサイズを示します。szAB の要素の数が同じになるように指定しなければなりません。つまり、prod(sz)numel(A) が同じでなければなりません。

2 番目より後の次元のサイズが 1 の場合、それらの次元は出力 B に反映されません。たとえば reshape(A,[3,2,1,1]) では 3 行 2 列の行列が生成されます。

例: reshape(A,[3,2])

例: reshape(A,[6,4,10])

例: reshape(A,[5,5,5,5])

各次元のサイズ。2 つ以上の整数として指定します。オプションで [] を 1 つだけ使用できます。次元のサイズは少なくとも 2 つ指定しなければならず、[] として指定できるのは 1 つだけです。これを指定すると、その次元のサイズが numel(B)numel(A) が一致するように自動的に計算されます。[] を使用して次元のサイズを自動で計算する場合、"明示的に指定する" 次元のサイズは入力行列の要素の数 numel(A) を割り切れる値にしなければなりません。

2 番目より後の次元のサイズが 1 の場合、それらの次元は出力 B に反映されません。たとえば reshape(A,3,2,1,1) では 3 行 2 列の行列が生成されます。

例: reshape(A,3,2)

例: reshape(A,6,[],10)

例: reshape(A,2,5,3,[])

例: reshape(A,5,5,5,5)

出力引数

すべて折りたたむ

形状変更後の配列。ベクトル、行列、多次元配列または cell 配列として返されます。B の要素のデータ型と数は A と同じになります。B の要素の列方向の順序は A の順序が維持されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | datetime | duration | calendarDuration

拡張機能

R2006a より前に導入