reshape
配列の形状変更
説明
は、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
の順序が維持されます。
多次元配列を行列に形状変更
乱数値の 2x2x3 配列を 6 行 2 列の行列に形状変更します。
rng default
A = rand(2,2,3)
A = A(:,:,1) = 0.8147 0.1270 0.9058 0.9134 A(:,:,2) = 0.6324 0.2785 0.0975 0.5469 A(:,:,3) = 0.9575 0.1576 0.9649 0.9706
B = reshape(A,6,2)
B = 6×2
0.8147 0.2785
0.9058 0.5469
0.1270 0.9575
0.9134 0.9649
0.6324 0.1576
0.0975 0.9706
入力引数
A
— 入力配列
ベクトル | 行列 | 多次元配列
入力配列。ベクトル、行列または多次元配列として指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| struct
| datetime
| duration
| calendarDuration
複素数のサポート: あり
sz
— 出力サイズ
整数の行ベクトル
出力サイズ。整数の行ベクトルとして指定します。sz
の各要素は B
の対応する次元のサイズを示します。sz
は A
と B
の要素の数が同じになるように指定しなければなりません。つまり、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
— 形状変更後の配列
ベクトル | 行列 | 多次元配列 | cell 配列
形状変更後の配列。ベクトル、行列、多次元配列または cell 配列として返されます。B
の要素のデータ型と数は A
と同じになります。B
の要素の列方向の順序は A
の順序が維持されます。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| datetime
| duration
| calendarDuration
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
この関数は tall 配列を制限付きでサポートしています。
tall 次元 (次元 1) の変形はサポートされていません。最初の次元の入力は、
reshape(X,[],M,N,...)
のように、常に空でなければなりません。
詳細については、メモリに収まらないデータの tall 配列を参照してください。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
入力がコンパイル時の空の cell 配列の場合、サイズの引数は定数でなければなりません。
サイズの引数は固定サイズでなければなりません。
ツールボックス関数のコード生成に対する可変サイズの制限 (MATLAB Coder)を参照してください。
スパース行列の場合、関数
reshape
は最初の 2 つの次元の後に続く 1 を入力としてサポートしません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意事項および制限事項:
入力がコンパイル時の空の cell 配列の場合、サイズの引数は定数でなければなりません。
サイズの引数は固定サイズでなければなりません。
スパース行列の場合、関数
reshape
は最初の 2 つの次元の後に続く 1 を入力としてサポートしません。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための Verilog および VHDL のコードを生成します。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)