gpt4 book ai didi

c++ - Eigen 模板函数和维度

转载 作者:行者123 更新时间:2023-11-28 04:31:07 25 4
gpt4 key购买 nike

我有一个表单的函数

template <typename derived>
void foo(Eigen::DenseBase<Derived>& z){
nc = z.cols();
nr = z.rows();
Eigen::DenseBase<Derived> x(nr-1, nc);
}

我想要一个有点像上面的伪代码的函数。本质上,我想传递一个对象 z,它可以是 VectorXd 或 MatrixXd 对象,如果它是 MatrixXd 对象,那么我想将 x 定义为维度 (nr-1) x nc 的 MatrixXd。但是,如果 z 是 VectorXd 对象,我想将 x 定义为长度为 (nr-1) 的 VectorXd 对象。

我该怎么做?

最佳答案

Eigen::DenseBase<>是抽象基类,您不能创建此类类型的任何对象。您正在寻找的是:

typename Derived::PlainObject x(nr-1, nc);

关于c++ - Eigen 模板函数和维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52865292/

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