ドキュメンテーション

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

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 =

     1     6
     2     7
     3     8
     4     9
     5    10

指定した列数になるように行列を形状変更

6 行 6 列の魔方陣行列を列数が 3 列になるように形状変更します。最初の次元のサイズを [] として指定して、適切な行数を reshape で自動で計算します。

A = magic(6);
B = reshape(A,[],3)
B =

    35     6    19
     3     7    23
    31     2    27
     8    33    10
    30    34    14
     4    29    18
     1    26    24
    32    21    25
     9    22    20
    28    17    15
     5    12    16
    36    13    11

結果は 12 行 3 列の行列で、要素数が元の 6 行 6 列の行列と同じ (36 個) になります。B の要素の列方向の順序も A の順序が維持されます。

多次元配列を行列に形状変更

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

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

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

入力引数

すべて折りたたむ

A — 入力配列ベクトル | 行列 | 多次元配列

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

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

複素数のサポート: あり

sz — 出力サイズ整数の行ベクトル

出力サイズ。整数の行ベクトルとして指定します。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])

sz1,...,szN — 各次元のサイズ2 つ以上の整数 | [] (オプション)

各次元のサイズ。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)

出力引数

すべて折りたたむ

B — 形状変更後の配列ベクトル | 行列 | 多次元配列 | セル配列

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

この情報は役に立ちましたか?