行向量min()矩阵与列向量

时间:2017-12-19 14:08:42

标签: eigen

我有一个m x n矩阵a和m元素列向量v。我想计算b b(i, j) == min(v(i), a(i, j))。我如何在eigen 3.3中表达这个?

a.colwise().min(v)是不允许的,因为CwiseBinaryOp没有min()成员函数,与ArrayBase不同。同样,operator*()是允许的,但不是min()

有没有比通过水平复制其元素将v转换为矩阵更好的方法?

1 个答案:

答案 0 :(得分: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;