Main Content

vec2mat

(非推奨) 次元の変更

vec2mat は推奨されません。代わりに reshape を使用してください。詳細については、互換性の考慮事項を参照してください。

説明

mat = vec2mat(vec,matcol) は、ベクトル vecmatcol 列の行列 mat に変換します。この関数は、一度に 1 行ずつ、行を vec の要素で順に埋めながら、行列を作成します。vec の長さが matcol の倍数でない場合、関数は mat の最後の行に matcol 個の要素が含まれるまで、ゼロを付加します。

mat = vec2mat(vec,matcol,padding) は、関数が mat の最後の行をパディングするために使用する値を指定します。関数は padding の値を順に使用します。

[mat,padded] = vec2mat(___) は、mat の最後の行でパディングした要素の数 padded も返します。前の構文の入力引数を任意に組み合わせて指定できます。

すべて折りたたむ

この例では、ベクトルから行列への変換時に必要に応じてパディングを追加する方法を示します。

行列に変換するベクトルとパディング値を指定するベクトルを作成します。

vec = [10;20;30;40;50];
padding = [1,2;3,4;5,6];
n = 4;

vec2mat を使用してベクトルを行列に変換する場合は、関数によって必要なパディングが決定されます。

[mat4,numPadded4] = vec2mat(vec,n,padding)
mat4 =
    10    20    30    40
    50     1     3     5
numPadded4 =
     3

reshape を使用してベクトルを行列に変換する場合は、ベクトルを行列に変換する前に、必要なパディングを計算してベクトルに付加しなければなりません。

numPadded = mod(numel(vec),n);
if numPadded > 0
    numPadded = n - numPadded
    mat = reshape([vec.' padding(1:numPadded)], n, []).'
else
    numPadded % No padding required
    mat = reshape(vec.', n, []).'
end
numPadded =
     3
mat =
    10    20    30    40
    50     1     3     5

入力引数

すべて折りたたむ

入力配列。ベクトルとして指定します。

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

出力行列 mat の列数。正の整数として指定します。vec の長さが matcol の倍数でない場合、関数は mat の最後の行に matcol 個の要素が含まれるまで、ゼロを付加します。

データ型: double

mat の最後の行のパディング値。ベクトルまたは行列として指定します。padding 入力は vec 入力のデータ型を継承します。関数は padding の値を順に使用します。関数が mat の最後の行を埋めるために必要な要素数よりも padding の要素数が少ない場合、関数は padding の最後の要素を繰り返して mat を埋めます。

出力引数

すべて折りたたむ

出力配列。vec の要素をもち、matcol 個の列で構成された行列として返されます。出力は入力のデータ型を継承します。行数は、ceil(length(vec)/matcol) に等しくなります。

mat の最後の行にあるパディングされた要素の数。正の整数として返されます。

バージョン履歴

R2006a より前に導入

すべて折りたたむ

R2020a: 関数 vec2mat は非推奨

  • vec2mat は推奨されません。代わりに reshape を使用してください。

  • ベクトル入力を与えられた reshape は、対応する行列を一度に 1 列ずつ作成します (一度に 1 行ではない)。

  • reshape では、入力配列と出力配列の要素数を等しくしなければなりませんが、vec2mat は必要に応じて出力行列にパディングを行います。

  • reshapevec2mat の使用を比較する例については、次元の変更とパディングの追加を参照してください。

参考