我有以下 test_mex mex 函数:
void mexFunction(int nlhs, mxArray **plhs, int nrhs, const mxArray **prhs)
{
const mxArray* m_var = NULL;
if ((m_var = mexGetArrayPtr("a", "caller")) == NULL)
{
mexErrMsgTxt("oopsie");
}
}
以及以下 test.m 文件:
function test()
a = 12345;
test_mex();
- 当我运行它时,它总是失败并打印“oopsie”。
- 当我创建
a
一个全局并将 mex 函数中的“调用者”字符串更改为“全局”时,它工作正常。
我究竟做错了什么?
笔记:
- 这是一个非常古老的 matlab 版本:版本 6.1.0.450 版本 12.1
- mexGetArrayPtr 是 mexGetVariablePtr 的旧版本,是的,它的参数顺序不同