mxArray
您可以从MATLAB命令行调用自己的C或c++程序,就像它们是内置函数一样。这些程序称为MEX函数,函数名就是MEX文件名。MEX函数并不适用于所有应用程序。MATLAB是一种高效的环境,它的特点是消除了耗时的、低级的编译语言编程。一般来说,用MATLAB编程。除非应用程序需要,否则不要使用MEX函数。
要创建MEX函数,请使用MATLAB api编写程序。这些库中的函数有助于在MEX函数和工作空间之间传输数据。要选择MATLAB API,请考虑以下内容。
MathWorks建议使用现代c++特性创建MEX函数,这些特性定义在MATLAB数据API.有关更多信息,请参见c++ MEX应用程序.
如果您的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/ c++程序中读取和写入MATLAB数据,请使用MATLAB C API读取mat文件数据.
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函数完成后继续存在 |
属性arrayProduct
用C矩阵API构建的C MEX函数。
链接到MEX函数示例的源代码。
使用mxArray
在MEX文件中。
管理规则mxArray
内存。
在创建用C Matrix API构建的MEX函数时,需要考虑的c++语言问题。
方法打印错误信息mexErrMsgIdAndTxt
函数。
如何在MEX文件中使用64位文件I/O。
如何从MEX文件输入参数中排除内置类型的子类。
这个示例展示了如何构建示例C MEX函数arrayProduct
.
MATLAB版本9.4 (R2018a)支持复数的交错表金宝app示。
MATLAB Version 9.2 (R2017a)默认使用64位API构建MEX文件。
MATLAB Version 8.4 (R2014b)将句柄的数据类型从双
来对象.
要帮助诊断编译器设置和生成错误,请调用墨西哥人
带有verbose选项-v的函数。
编译MEX文件失败时的处理方法。
有关警告和错误消息的更多信息。
用MinGW-w64编译C/ c++ MEX文件的故障排除和限制
用MinGW-w64编译器构建的MEX文件的故障排除。
每个MEX文件都需要一个mexFunction
.
当你得到一个无效的MEX文件错误时该怎么做。
为获得最佳效果,请运行用MATLAB版本构建的MEX文件。
如果从其他来源获得二进制MEX文件,请确保该文件是针对要在其上运行的同一平台编译的。
不要在单独的线程上从MEX文件调用MATLAB的单个会话。
当MEX文件导致分段违反或断言时该怎么办。
当MEX生成错误答案时该怎么办?
使用Microsoft Visual Studio进行调试的建议®.
此示例显示如何调试上的MEX文件Mac平台。
本示例介绍如何在Linux下调试MEX文件®平台。