gpt4 book ai didi

c++ - 将 C++ 数组映射到特征矩阵

转载 作者:行者123 更新时间:2023-11-28 05:55:47 27 4
gpt4 key购买 nike

我目前正在尝试做的是从我的变量输入中获取数据,将其转换为特征矩阵,进行一些计算,然后将结果映射回 C++ 数组。

       void RBM::reconstruct(double *input, double *w) 
{

double *data = input;
mexPrintf("\n");

for (int j = 0; j < 6; j++){
mexPrintf("%f", data[j]);
}
mexPrintf("\n");

Map<MatrixXd> XX(data,6,6);
MatrixXd resultEigen;
double *result;

Map<MatrixXd>( result, 6, 6 ) = XX;
resultEigen = XX.transpose();

Map<MatrixXd>( result, resultEigen.rows(), resultEigen.cols() ) = resultEigen;
}

上面的代码可以编译,但我得到(运行时错误)可能链接到访问冲突,我无法真正弄清楚问题出在哪里。感谢您的任何提示。

最佳答案

你误解了什么是Eigen::Map。该映射包装了一个现有的内存块,并允许您在该 block 上使用 Eigens 功能。使用 Eigen::Map Eigen 可以处理任何内存分配。这使您无需来回复制即可操作其他库中对象中的数据。如前所述 in the comments ,如果您将 result 数组分配为 double result[36];,程序应该可以正常运行。

关于c++ - 将 C++ 数组映射到特征矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34177938/

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