在本征中分配随机VectorXd的步骤如下:
VectorXd z = VectorXd::Random(10000);然而,我不知道如何动态地分配相同的向量:
VectorXd* z = new VectorXd::Random(10000); // error: expected type-specifier因为VectorXd是typedef。我可以使用另一个构造函数,但是我怀疑这是不可理解的,而且效率很低:
VectorXd* z = new VectorXd(VectorXd::Random(10000)); // compiles发布于 2016-04-06 06:47:50
Eigen::VectorXd是一个容器,它将动态地为自己的内容(元素数组)分配所需的内存,因此以下所有内容都可以工作:
VectorXd* z1 = new VectorXd(VectorXd::Random(10)); // compiles
std::cout << "z1:\n" << z1->transpose() << "\n\n";
VectorXd* z2 = new VectorXd(); // also compiles
z2->setRandom(10);
std::cout << "z2:\n" << z2->transpose() << "\n\n";
VectorXd* z3 = new VectorXd(); // compiles as well
*z3 = VectorXd::Random(10);
std::cout << "z3:\n" << z3->transpose() << "\n\n";大多数特征对象都是这样,但其大小不动态的对象除外(例如Eigen::Vector3d)。
https://stackoverflow.com/questions/36438666
复制相似问题