如何将Eigen中的1 * 1矩阵更改为浮点数?

时间:2012-05-11 06:24:40

标签: 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转换为在赋值中浮动'。

1 个答案:

答案 0 :(得分:1)

如果mat是1 x 1矩阵,则mat.value()是唯一的标量条目。

因此,你可以做到

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