3

固有行列ライブラリを使用しています。

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());

「constEigen::GeneralProductを割り当てでフロートに変換することはできません」と書かれています。

4

1 に答える 1

3

matが 1 行 1 列の行列の場合、mat.value()スカラーとしての唯一のエントリです。

したがって、次のことができます

mtemp(0,0) = (((MatrixXf(1,2) << 0, 2).finished()) 
              * ((MatrixXf(2,1) << 0, 2).finished())).value();
于 2012-05-14T08:57:23.320 に答える