Assign

自動キャストで行列、ベクトル、または配列をコピーします。

bool matrix::Assign(
  const matrix<T> &mat    // コピーされた行列
  );
bool matrix::Assign(
  const void      &array[] // コピーされた配列
  );
bool vector::Assign(
  const vector<T>  &vec    // コピーされたベクトル
  );
bool vector::Assign(
  const void      &array[] // コピーされた配列
  );
 

パラメータ

m、vまたは配列

[in] 値のコピー元の行列、ベクトル、または配列

戻り値

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

注意事項

Copyとは異なり、Assignメソッドでは配列もコピーできます。この場合、自動キャストが行われ、結果の行列/ベクトルがコピーされた配列のサイズに調整されます。

例:

//--- 行列をコピーする
matrix a= {{2, 2}, {3, 3}, {4, 4}};
matrix b=a+2;
matrix c;
Print("matrix a \n", a);
Print("matrix b \n", b);
c.Assign(b);
Print("matrix c \n", a);
 
//--- 配列を行列にコピーする
matrix double_matrix=matrix::Full(2,10,3.14);
Print("double_matrix before Assign() \n", double_matrix);
int int_arr[5][5]= {{1, 2}, {3, 4}, {5, 6}};
Print("int_arr: ");
ArrayPrint(int_arr);
double_matrix.Assign(int_arr);
Print("double_matrix after Assign(int_arr) \n", double_matrix);  
 /*
  matrix a
  [[2,2]
   [3,3]
   [4,4]]
  matrix b
  [[4,4]
   [5,5]
   [6,6]]
  matrix c
  [[2,2]
   [3,3]
   [4,4]]
 
  double_matrix before Assign()
  [[3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14]
   [3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14,3.14]]
   
  int_arr:
      [,0][,1][,2][,3][,4]
  [0,]   1   2   0   0   0
  [1,]   3   4   0   0   0
  [2,]   5   6   0   0   0
  [3,]   0   0   0   0   0
  [4,]   0   0   0   0   0
 
  double_matrix after Assign(int_arr)
  [[1,2,0,0,0]
   [3,4,0,0,0]
   [5,6,0,0,0]
   [0,0,0,0,0]
   [0,0,0,0,0]]
 
 */

参照

Copy