在此之前,我必须说我已经研究过Comparing two matrices with eigen ,但我的问题不一样。假设我有两个特征矩阵A和B,我想以下列方式编辑A:
if(A(i,j)> B(i,j))A(i,j)= A(i,j) 否则A(i,j)= B(i,j)
我想没有明确的for循环就可以做到这一点。但我对Eigen还不是很精通。什么是最好的方法?
答案 0 :(得分:3)
#include <iostream>
#include <Eigen/Dense>
int main()
{
Eigen::Matrix2i A = Eigen::Matrix2i::Random();
Eigen::Matrix2i B = Eigen::Matrix2i::Random();
std::cout << "A =\n" << A << "\nB =\n" << B << "\n";
A = A.cwiseMax(B);
std::cout << "max(A,B) =\n" << A << "\n";
}
我的机器上的输出是
A =
730547559 607950953
-226810938 640895091
B =
884005969 -353856438
-649503489 576018668
max(A,B) =
884005969 607950953
-226810938 640895091