如何在vt M v产品中存储双倍

时间:2014-03-23 22:06:19

标签: c++ eigen

我正在使用Eigen库并初始化向量v(nx1)和矩阵M.我需要将产品vt * M * v的结果存储在一个double变量中,其中vt是v.transpose()。我怎样才能做到这一点?感谢

1 个答案:

答案 0 :(得分:1)

Eigen::MatrixXd M(4,4);
M.setRandom();
Eigen::VectorXd v(4);
v.setRandom();
double output = v.transpose() * M * v;
std::cout << "M: " << M << std::endl;
std::cout << "v: " << v << std::endl;
std::cout << "output: " << output << std::endl;

结果:
L:
-0.997497 0.170019 0.64568 0.421003
0.127171 -0.0402539 0.49321 0.0270699
-0.613392 -0.299417 -0.651784 -0.39201
 0.617481 0.791925 0.717887 -0.970031
五:
-0.817194,-0.271096,-0.705374,-0.668203
输出:-0.435975