matrix - 如何将 Eigen 中的 1*1 矩阵更改为 float ?

标签 matrix eigen

我正在使用特征矩阵库。

如何将 1* 1 的矩阵转换为数字(浮点数或其他)?

可以这样做

cout << ((MatrixXf(1,2) << 0, 2).finished()) * ((MatrixXf(2,1) << 0, 2).finished()) << endl;

但是当我尝试这样做时
MatrixXf mtemp(2,1);
mtemp(0,0) = ((MatrixXf(1,2) << 0, 2).finished()) * ((MatrixXf(2,1) << 0, 2).finished());

它说“无法将 const Eigen::GeneralProduct 转换为赋值中的浮点数”。

最佳答案

mat是一个 1×1 矩阵,那么 mat.value()是它作为标量的唯一入口。

因此,你可以做

mtemp(0,0) = (((MatrixXf(1,2) << 0, 2).finished()) 
              * ((MatrixXf(2,1) << 0, 2).finished())).value();

关于matrix - 如何将 Eigen 中的 1*1 矩阵更改为 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10546432/

相关文章:

r - 从矩阵中提取排序的行

opencv - 在 OpenCV 2.3 中为 Mat 数组赋值时出现问题 - 看起来很简单

performance - 加速numpy矩阵逆

r - 在 R 编程语言中确定矩阵是否可对角化

c++ - 将固定大小的特征矩阵作为参数传递给调用动态大小矩阵的函数

c++ - Eigen 稀疏矩阵乘法的内存泄漏

c++ - 如何使用 Eigen 库计算矩阵幂?

arrays - 在 3d 矩阵的第二维中排序

c++ - 保留稠密特征矩阵

c++ - 矩阵库是否有顺序中性?