Resize

形状とサイズが変更された新しい行列を返します。

bool matrix::Resize(
const ulong  rows,    // 
  const ulong  cols,     // 新しい列数
  const ulong  reserve=0 // アイテムの予約
  );
 
bool vector::Resize(
  const ulong  size,     // 新しいサイズ
  const ulong  reserve=0 // アイテムの予約
  );

パラメータ

rows

[in] 新しい行数

cols

[in] 新しい列数

戻り値

成功の場合はtrue、それ以外の場合はfalse

注意事項

行列 (またはベクトル) はその場で処理されます。コピーは作成されません。任意のサイズを指定できます。つまり、rows_new*cols_new!=rows_old*cols_oldです。Reshapeとは異なり、行列は行ごとに処理されます。列数を増やすと、余分な列の値は未定義になります。行数を増やすと、新しい行の要素の値は未定義になります。列数を減らすと、行列の各行が切り捨てられます。

  matrix matrix_a={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
  Print("matrix_a\n",matrix_a);
  matrix_a.Resize(2,6);
  Print("Ressize(2,6)\n",matrix_a);
  matrix_a.Resize(3,5);
  Print("Resize(3,5)\n",matrix_a);
  matrix_a.Resize(2,4);
  Print("Resize(2,4)\n",matrix_a);
 
  /*
  matrix_a
  [[1,2,3]
   [4,5,6]
   [7,8,9]
   [10,11,12]]
  Ressize(2,6)
  [[1,2,3,4,5,6]
   [4,5,6,10,11,12]]
  Resize(3,5)
  [[1,2,3,4,5]
   [4,5,6,10,11]
   [11,12,3,8,8]]
  Resize(2,4)
  [[1,2,3,4]
   [4,5,6,10]]
  */