【发布时间】:2013-11-05 15:30:52
【问题描述】:
我正在尝试使用 mex 函数将向量返回给 matlab。我将返回指针声明为,
double *retPtr = NULL;
那么返回码如下:
plhs[0] = mxCreateDoubleMatrix(N, 1, mxREAL);
retPtr = mxGetPr(plhs[0]);
for (int i = 0; i < N; i++)
{
retPtr[i] = forest->predictLabel(&(testData[i*M]), M);
}
返回类型是 vector ,但我不断收到错误:
Error 1 error C2440: '=' : cannot convert from 'std::vector<_Ty>' to 'double'
我声明指针的方式有问题。任何帮助将不胜感激。
问候, 埃里克
【问题讨论】:
-
如果您的返回类型是
std::vector,您不应该这样声明它而不是指向双精度的指针吗? -
我不确定,该怎么做,你能建议怎么做吗?
-
对
mxGetPr不熟悉,但编译器似乎在告诉您它返回的内容 - 肯定来自 mxGetPr 行吗?你可以看看this answer。
标签: c++ matlab vector compiler-errors mex