gpt4 book ai didi

c++ - 每次迭代发送一个矩阵 : Matlab "engine.h" c++

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:02 25 4
gpt4 key购买 nike

这个问题是在解决了我在这个 question 中遇到的问题之后出现的.我有一个 c++ 代码,可以处理来自相机的帧并为每个处理过的帧生成一个矩阵。我想将每个矩阵发送到 matlab 引擎,所以在执行结束时我已经存储了所有矩阵。我对如何做到这一点感到困惑,我在每次迭代中发送一​​个矩阵,但它一直在覆盖它,所以最后我只有一个。这是一个代码示例:

矩阵.cpp

#include helper.h

mxArray *mat;
mat = mxCreateDoubleMatrix(13, 13, mxREAL);
memcpy(mxGetPr(mat),matrix.data, 13*13*sizeof(double));
engPutVariable(engine, "mat", mat);

我还尝试使用计数器对不同的矩阵进行动态命名,但它不起作用,因为 matlab 引擎需要先定义变量。任何帮助将不胜感激。谢谢。

最佳答案

您可以像这样在 matlab 工作区中创建元胞数组:

    mwSize size = 10;
mxArray* cell = mxCreateCellArray(1, &size);

for(size_t i=0;i<10;i++)
{
mxArray *mat;
mat = mxCreateDoubleMatrix(13, 13, mxREAL);
memcpy(mxGetPr(mat),matrix.data, 13*13*sizeof(double));

mwIndex subscript = i;
int index = mxCalcSingleSubscript(cell , 1,&subscript);
mxSetCell(m_cell , index, mat);
}

engPutVariable(engine, "myCell", cell);

关于c++ - 每次迭代发送一个矩阵 : Matlab "engine.h" c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8847504/

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