mxArray
您可以从MATLAB命令行调用自己的C或c++程序,就像它们是内置函数一样。这些程序称为MEX函数,函数名就是MEX文件名。MEX函数并不适用于所有应用程序。MATLAB是一个高生产率的环境,它的专长是消除耗时的、低层次的编译语言编程。一般来说,用MATLAB编程。除非应用程序需要,否则不要使用MEX函数。
要创建MEX函数,请使用MATLAB api编写程序。这些库中的函数方便了MEX函数和工作空间之间的数据传输。要选择MATLAB API,请考虑以下内容。
MathWorks建议使用现代c++特性创建MEX函数,如MATLAB数据API.有关更多信息,请参见c++墨西哥人的应用程序.
如果你的MEX函数必须在MATLAB R2017b或更早的版本中运行,或者你更喜欢在C语言中工作,那么使用矩阵C API和C MEX API。这些api使用MATLABmxArray
数据结构。本页的功能和主题是基于mxArray
.
请注意
从C Matrix API或MATLAB Data API中选择函数;您不能混合使用这些api中的函数。
将源文件构建为可执行程序墨西哥人
函数。您还可以与其他MATLAB用户共享MEX文件。
有关编写s函数的信息,请参阅Simulink金宝app®文档。
要调用其他人创建的MEX函数,请参见墨西哥人文件函数.
如果您有一个C/ c++程序,并希望从程序中调用MATLAB函数,那么可以使用其中一个引擎api。
如果你想从C/ c++程序中读写MATLAB数据,那么使用读mat文件数据的MATLAB C API.
mexFunction |
用C Matrix API构建的C/ c++ MEX函数的入口点 |
mexFunctionName |
当前MEX函数名 |
mexAtExit |
注册当MEX函数清除或时调用的函数MATLAB终止 |
mexCallMATLAB |
调用MATLAB函数、用户定义函数或MEX函数 |
mexCallMATLABWithTrap |
调用MATLAB函数、用户定义函数或MEX文件并捕获错误信息 |
mexEvalString |
执行MATLAB调用者工作区中的命令 |
mexEvalStringWithTrap |
执行MATLAB在调用者工作区中执行命令并捕获错误信息 |
mexGetVariable |
从指定的工作区复制变量 |
mexGetVariablePtr |
从另一个工作区指向变量的只读指针 |
mexPutVariable |
数组从MEX函数到指定的工作空间 |
mexGet |
指定图形属性的值 |
mexSet |
设置指定图形属性的值 |
mexPrintf |
ANSICPRINTF-style输出例程 |
mexErrMsgIdAndTxt |
用标识符显示错误消息并返回MATLAB提示 |
mexWarnMsgIdAndTxt |
带有标识符的警告消息 |
mexIsLocked |
确定MEX文件是否被锁定 |
mexLock |
防止从内存中清除MEX文件 |
mexUnlock |
允许从内存中清除MEX文件 |
mexMakeArrayPersistent |
在MEX文件完成后使数组保持 |
mexMakeMemoryPersistent |
使内存分配为MATLAB在MEX函数完成后保持 |
这个例子展示了如何创建arrayProduct
用C Matrix API构建的C MEX函数。
链接到MEX函数示例的源代码。
使用mxArray
在墨西哥人的文件。
规则管理mxArray
内存。
在使用C Matrix API创建MEX函数时需要考虑的c++语言问题。
使用。打印错误信息mexErrMsgIdAndTxt
函数。
如何在MEX文件中使用64位文件I/O。
如何从MEX文件输入参数中排除内置类型的子类。
这个示例展示了如何构建示例C MEX函数arrayProduct
.
MATLAB版本9.4 (R2018a)支持复数的交错表金宝app示。
MATLAB版本9.2 (R2017a)默认使用64位API构建MEX文件。
MATLAB版本8.4 (R2014b)将句柄的数据类型更改为图形对象双
来对象.
要帮助诊断编译器设置和构建错误,请调用墨西哥人
函数带有verbose选项-v。
当编译MEX文件失败时应该做什么。
有关警告和错误消息的更多信息。
用MinGW-w64编译器构建的MEX文件的故障排除。
每个MEX文件需要一个mexFunction
.
当你得到一个无效的MEX文件错误时该怎么做。
为了获得最好的结果,运行用MATLAB版本构建的MEX文件。
如果您从其他来源获得一个二进制MEX文件,请确保该文件是针对您希望在其上运行它的相同平台编译的。
不要从一个MEX文件在单独的线程上调用MATLAB的单个会话。
当MEX文件导致段冲突或断言时该怎么办?
当MEX生成错误答案时该怎么办?
使用Microsoft Visual Studio进行调试的建议®.
这个例子展示了如何调试一个MEX文件Mac平台。
这个例子展示了如何调试Linux上的MEX文件®平台。