主要内容

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运营商、用户定义的函数或其他墨西哥人功能。

这两个mexCallMATLABmexEvalStringMATLAB命令执行。使用mexCallMATLAB返回结果(左侧参数)回到墨西哥人的功能。的mexEvalString墨西哥人函数函数没有返回值。

输入参数

全部展开

预期的输出数mxArrays,指定为一个整数小于或等于50。

数组的指针mxArray输出参数。

谨慎

plhs理由mexCallMATLAB不是一样的吗plhsmexFunction。不破坏mxArray中返回plhsmexFunction

输入数量mxArrays,指定为一个整数小于或等于50。

数组的指针mxArray输入参数。

MATLAB内置函数名称、运营商、用户定义的函数,或墨西哥人指定要调用的函数const char *

如果functionName是操作员,操作员在一对双引号,例如,“+”

输出参数

全部展开

函数返回0如果成功,如果不成功和一个非零值。

错误处理

如果functionName检测到一个错误,MATLAB终止MATLAB的墨西哥人功能,并返回控制提示。捕获错误,使用mexCallMATLABWithTrap函数。

限制

  • 避免使用mexCallMATLAB功能仿真软件金宝app®S-functions。如果你这样做,不存储结果plhsmxArray指针在任何功能块国家墨西哥人功能完成后,这个问题仍然存在。输出的mexCallMATLAB有临时的范围和在墨西哥人函数调用结束后自动销毁。

  • 可以生成一个对象的类型mxUNKNOWN_CLASS使用mexCallMATLAB。例如,这个函数返回两个变量但只分配一个值。

    函数[a, b] = foo (c) = 2 * c;

    如果你然后调用喷火使用mexCallMATLAB,现在未赋值的输出变量类型mxUNKNOWN_CLASS

例子

看到这些例子matlabroot走读生/ /墨西哥人例子:

看到这些例子matlabroot走读生/ / refbook例子:

看到这些例子matlabroot走读生/ / mx例子:

提示

  • MATLAB动态内存分配存储的数组plhsmexCallMATLAB。MATLAB在退出时自动重新分配动态内存的墨西哥人的功能。然而,如果堆空间是溢价,电话mxDestroyArray当你使用完数组plhs

版本历史

之前介绍过的R2006a