Eigen3 中两个矩阵之间的 Frobenius 内积

问题描述

是否有一种简单快速解决方案来计算 Eigen3 中两个 3x3 矩阵之间的 Frobenius 内积?

解决方法

我认为您正在寻找正常的矩阵乘法

Eigen::Matrix3d a;
Eigen::Matrix3d b;

Eigen::Matrix3d product = a * b;
,

如果您正在搜索 inner product of matrices,一个可能的(可能不是最佳的)解决方案可能是

    #include <iostream>
    #include "Eigen/Dense"
     
    int main()
    {
      
    Eigen::Matrix3d A,B;
    A << 1,2,3,4,5,6,7,8,9;
    B << 10,11,12,13,14,15,16,17,18;

    Eigen::Matrix3d C;
    C = A.transpose()*B;
    
    std::cout << C.trace() << std::endl;

        return 0;
    }