gpt4 book ai didi

c++ - 将特征向量复制到 C 数组?

转载 作者:行者123 更新时间:2023-11-28 01:48:06 25 4
gpt4 key购买 nike

如何将特征向量 mesh 复制到 C 数组 r

double *r;
typedef Eigen::VectorXd RealVector;
Eigen::Map<RealVector>(r, 1, mesh.cols()) = mesh;

给出来自 Eigen 的断言

DenseBase::resize() does not actually allow to resize.

相同的消息来自任何一个

Eigen::Map<RealVector>(r, mesh.cols()) = mesh;

Eigen::Map<RealVector>(r, mesh.cols(), 1) = mesh;

我需要复制值,而不仅仅是映射。

最佳答案

由于您没有澄清,我推测您可能犯了三个错误:

  • 要么您的 mesh 实际上是一个 VectorXd,但它总是只有一列,但可能有多行,即您需要编写:

    Eigen::VectorXd::Map(r, mesh.rows()) = mesh;
  • 或者您的网格是一个RowVectorXd(即,有一行和多列)。然后你需要写:

    Eigen::RowVectorXd::Map(r, mesh.cols()) = mesh;
  • 如果 mesh 实际上是一个矩阵,您需要决定如何将其映射到线性内存(即行优先或列优先)。这也可以通过 Map 实现:

    Eigen::MatrixXd::Map(r, mesh.rows(), mesh.cols()) = mesh;

关于c++ - 将特征向量复制到 C 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44055514/

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