gpt4 book ai didi

c++ - 动态分配随机特征向量Xd

转载 作者:行者123 更新时间:2023-11-30 01:44:19 25 4
gpt4 key购买 nike

在 eigen 中分配一个随机的 VectorXd 是这样完成的:

VectorXd z = VectorXd::Random(10000);

但是,我不确定如何动态分配同一个 Vector:

VectorXd* z = new VectorXd::Random(10000); // error: expected type-specifier

因为 VectorXd 是一个 typedef。我可以使用另一个构造函数,但我怀疑这是不必要且效率低下的:

VectorXd* z = new VectorXd(VectorXd::Random(10000)); // compiles

最佳答案

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 对象都是如此,但那些大小不是动态的对象除外(例如 Eigen::Vector3d)。

关于c++ - 动态分配随机特征向量Xd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com