Eigenの行列の各要素で,あるしきい値未満の値を0にしたい
解決したいこと
EigenのMatrixXd の各要素にアクセスして,
その絶対値があるしきい値未満の場合に,その値を0にしたいです.
要は,下の実装と等価になるようなものをスマートに書きたいです.
MatrixXd M(3, 3);
M << 0.0, 1.0, -2.0, 0.0, 1.0, 2.0, 0.0, -1.0, 2.0;
cout << M << endl;
//0 1 -2
//0 1 2
//0 -1 2
for(int i = 0; i < M.rows(); i++)
{
for(int j = 0; j < M.cols(); j++)
if(M(i, j) < abs(1.5))
M(i, j) = 0.0;
}
cout << M << endl;
//0 0 0
//0 0 2
//0 0 2
おそらくarray()メソッドを使うというのは想像つくのですが,,,
ご教授のほど宜しくおねがいします.
0