【发布时间】:2012-01-13 07:59:22
【问题描述】:
这个问题是在解决了我在这个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中当然可以,我不知道如何使用mex函数在c++中定义它。我试图创建像 mat[i] 或 mat(i) 这样的变量,但 matlab 引擎不将 i 理解为整数。您只能对 mxArray 变量执行 engPutVariable。
标签: c++ iteration matlab-engine