我有一个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
转换为矩阵更好的方法?
答案 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;