2017-12-19 7 views
0

は、m×n行列aとm要素列ベクトルvを持っています。私はb(i, j) == min(v(i), a(i, j))のようにbを計算したいと思います。固有値3.3でこれをどのように表現すればよいですか? CwiseBinaryOpmin()メンバ関数を持っていないため列ベクトルを有する行列の列方向min()列番号

a.colwise().min(v)ArrayBaseとは異なり、許可されていません。同様に、operator*()は許可されますが、は許可されません。

vを要素に水平方向に複製して行列に変換するよりも良い方法はありますか?

答えて

0

array(),rowwise()およびreplicate()を使用してこれを達成できることがわかりました。特に:

MatrixXd a(3,2); 
VectorXd v(3); 
a << 1, 2, 3, 4, 5, 6; 
v << 3, 4, 5; 
cout << a.array().min(v.rowwise().replicate(2).array()) << endl; 
関連する問題