mexCallMATLAB (C)
调用MATLAB函数、用户定义函数或墨西哥人的功能
C语法
# include”墨西哥人。h " int mexCallMATLAB (int nlhs mxArray * plhs [], int nrhs, mxArray * prhs [], const char * functionName);
描述
请注意
写墨西哥人使用现代c++的特性和功能MATLAB c++数据API,请参阅从MATLAB编写c++函数调用(墨西哥人文件)。
调用mexCallMATLAB
内部调用MATLAB®数字功能,MATLAB运营商、用户定义的函数或其他墨西哥人功能。
这两个mexCallMATLAB
和mexEvalString
MATLAB命令执行。使用mexCallMATLAB
返回结果(左侧参数)回到墨西哥人的功能。的mexEvalString
墨西哥人函数函数没有返回值。
输入参数
输出参数
错误处理
如果functionName
检测到一个错误,MATLAB终止MATLAB的墨西哥人功能,并返回控制提示。捕获错误,使用mexCallMATLABWithTrap
函数。
限制
避免使用
mexCallMATLAB
功能仿真软件金宝app®S-functions。如果你这样做,不存储结果plhs
mxArray
指针在任何功能块国家墨西哥人功能完成后,这个问题仍然存在。输出的mexCallMATLAB
有临时的范围和在墨西哥人函数调用结束后自动销毁。可以生成一个对象的类型
mxUNKNOWN_CLASS
使用mexCallMATLAB
。例如,这个函数返回两个变量但只分配一个值。函数[a, b] = foo (c) = 2 * c;
如果你然后调用
喷火
使用mexCallMATLAB
,现在未赋值的输出变量类型mxUNKNOWN_CLASS
。
例子
看到这些例子
:matlabroot
走读生/ /墨西哥人例子
看到这些例子
:matlabroot
走读生/ / refbook例子
看到这些例子
:matlabroot
走读生/ / mx例子
提示
MATLAB动态内存分配存储的数组
plhs
为mexCallMATLAB
。MATLAB在退出时自动重新分配动态内存的墨西哥人的功能。然而,如果堆空间是溢价,电话mxDestroyArray
当你使用完数组plhs
。