Flat

2つではなく1つのインデックスを介して行列要素をアドレス指定できます。

bool matrix::Flat(
const ulong  index,    // 
  const double  value      // 設定する値
  );
 
double matrix::Flat(
const ulong  index,    // 
  );
 

パラメータ

index

[in] フラットインデックス

value

[in] 指定されたインデックスで設定する値

戻り値

指定されたインデックスによる値

注意事項

行列mat(3,3)の場合、アクセスは次のように記述できます。  

  • 読み取り:x=mat.Flat(4)(x=mat[1][1]と同等)  
  • 書き込み:mat.Flat(5, 42)(mat[1][2]=42と同等)

 

  matrix matrix_a={{10,3,2},{1,8,12},{6,5,4},{7,11,9}};
  Print("matrix_a\n",matrix_a);
  ulong arg_max=matrix_a.ArgMax();
  Print("max_value=",matrix_a.Flat(arg_max));
  matrix_a.Flat(arg_max,0);
  arg_max=matrix_a.ArgMax();
  Print("max_value=",matrix_a.Flat(arg_max));
 
 
 /*
matrix_a
 [[10,3,2]
  [1,8,12]
  [6,5,4]
  [7,11,9]]
max_value=12.0
max_value=11.0
 */