Eigen C++:如何在随机矩阵初始化后固定值?
似乎在特征包中,系数在随机矩阵初始化后不断变化。下面列出了一些图示代码和输出。我们期望X.transpose是第一个X的转置,但它是另一个随机矩阵的转置 在随机矩阵初始化之后,如何修复这些值Eigen C++:如何在随机矩阵初始化后固定值?,c++,eigen,eigen3,C++,Eigen,Eigen3,似乎在特征包中,系数在随机矩阵初始化后不断变化。下面列出了一些图示代码和输出。我们期望X.transpose是第一个X的转置,但它是另一个随机矩阵的转置 在随机矩阵初始化之后,如何修复这些值 #include <iostream> #include <Eigen/Dense> using namespace Eigen; using namespace std; int main(){ auto X = MatrixXi::Random(2,2); cout
#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
using namespace std;
int main(){
auto X = MatrixXi::Random(2,2);
cout << X << endl;
cout << "---------" << endl;
cout << X.transpose() << endl;
cout << "---------" << endl;
cout << X << endl;
cout << "---------" << endl;
return 0;
}
。自动X=MatrixXi::Random2,2的结果;是在求值时创建随机矩阵的表达式。每次调用cout都会对其进行一次又一次的评估。而是使用MatrixXi X=MatrixXi::Random2,2 MatrixXi::Random2,2返回一个表达式,如果使用auto X,则X具有表达式类型。也可以执行自动X=MatrixXi::Random2,2.eval;;
-1073725017 548908249
-791266575 -88798166
---------
70367106 -603530552
-972714280 384109054
---------
385036099 -250177384
933495885 41696341
---------