如何比较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 还不是很精通。最好的方法是什么?
#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
首先我必须说我已经研究了 比较两个矩阵与特征值 但我的问题不一样。假设我有两个特征矩阵 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 还不是很精通。最好的方法是什么?
#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