主要内容

编写C函数可调用MATLAB(墨西哥人文件)

创建可以从MATLAB调用的C函数®R2017b或更早版本,使用mxArray访问MATLAB变量并创建数组以返回MATLAB

您可以从MATLAB命令行调用自己的C程序,就像它们是内置函数一样。这些程序称为MEX函数,函数名就是MEX文件名。MEX函数并不适用于所有应用程序。MATLAB是一种高效的环境,它的特点是消除了耗时的、低级的编译语言编程。一般来说,用MATLAB编程。除非应用程序需要,否则不要使用MEX函数。

要创建MEX函数,请使用MATLAB api编写程序。这些库中的函数有助于在MEX函数和工作空间之间传输数据。要选择MATLAB API,请考虑以下内容:

  • 类中定义的现代c++特性创建MEX函数MATLAB数据API for c++.有关更多信息,请参见编写MATLAB中可调用的c++函数

  • 如果您的MEX函数必须在MATLAB R2017b或更早版本中运行,或者如果您更喜欢在C语言中工作,则使用C矩阵API和cmex API。这些api使用MATLABmxArray数据结构。本页面提供的功能和主题基于mxArray

请注意

从C矩阵API或MATLAB数据API中选择函数;你不能混合使用这些api中的函数。

方法将源文件构建为可执行程序墨西哥人函数。您还可以与其他MATLAB用户共享MEX文件。

有关编写s函数的信息,请参阅Simulink金宝app®文档。

若要调用他人创建的MEX函数,请参见呼叫MEX功能

如果您有一个C/ c++程序,并且希望从程序中调用MATLAB函数,那么请使用其中一个引擎api。有关更多信息,请参见:

如果要从C程序读取和写入MATLAB数据,请参见编写C程序读取mat文件数据

功能

墨西哥人 构建MEX函数或引擎应用程序
dbmex 开启墨西哥文件调试UNIX平台

C mex API

mexFunction C/ c++ MEX函数的入口点,使用C矩阵API构建
mexFunctionName 当前MEX函数名称
mexAtExit 注册功能调用时,MEX功能清除或MATLAB终止
mexCallMATLAB 调用MATLAB函数、用户自定义函数或MEX函数
mexCallMATLABWithTrap 调用MATLAB函数、用户自定义函数或MEX文件,捕获错误信息
mexEvalString 执行MATLAB调用方工作区中的命令
mexEvalStringWithTrap 执行MATLAB命令,并捕获错误信息
mexGetVariable 从指定工作区复制变量
mexGetVariablePtr 指向另一个工作区变量的只读指针
mexPutVariable 数组从MEX函数到指定的工作空间
mexGet 指定图形属性的值
mexSet 设置指定图形属性的值
mexPrintf ANSICprintf样式的输出例程
mexErrMsgIdAndTxt 显示带有标识符的错误消息并返回到MATLAB提示
mexWarnMsgIdAndTxt 带有标识符的警告消息
mexIsLocked 确定MEX文件是否被锁定
mexLock 禁止从内存中清除MEX文件
mexUnlock 允许从内存中清除MEX文件
mexMakeArrayPersistent 在MEX文件完成后保持数组
mexMakeMemoryPersistent 使内存由MATLAB在MEX函数完成后继续存在

主题

编写C MEX函数

C Matrix API版本

共享MEX文件

故障排除

构建错误

运行时错误

调试