如何比较2个矩阵?

How to compare 2 matrices?

首先我必须说我已经研究了 比较两个矩阵与特征值 但我的问题不一样。假设我有两个特征矩阵 A 和 B,我想按以下方式编辑 A:

if (A(i,j) > B(i,j)) A(i,j) = A(i,j) otherwise A(i,j) = B(i,j)

我想可以在没有显式 for 循环的情况下完成。但是我对 Eigen 还不是很精通。最好的方法是什么?

A.cwiseMax(B)

#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