【发布时间】:2021-04-14 09:43:12
【问题描述】:
我对 C/C++ 编码中的 MEX 文件有疑问。 我需要将一个双复数数组返回给 Matlab,但我无法做到这一点,也找不到有关它的信息。我尝试了一些代码来展示我的代码:
double complex output[nSymb];
nlhs = 1;
plhs[0] = mxCreateDoubleMatrix(nSymb,(mwSize)nlhs,mxCOMPLEX);
// 1º option
plhs[0] = output;
// 2º option
memcpy(plhs, output, nSymb * sizeof(double complex));
// 3º option
plhs = output;
提前谢谢你。
【问题讨论】:
-
我不知道 MEX,但在 C++ 中,我希望使用
std::complex<double>类型。此外,memcpy具有目标参数 first 和源参数 second。output这个名字表明你已经交换了它们。此外,plhs[0]在您的代码中分配了两次。为什么?最后,plhs = output;在memcpy之后?这看起来真的很混乱。