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语言中,那么在使用功能体基质API和C MEX API。这些API使用MATLABmxArray
数据结构。此页面上的功能和主题是基于mxArray
。
选择从任一C矩阵API或MATLAB数据API函数;你不能从这些API混合功能。
建立你的源文件到使用一个可执行程序MEX
功能。您也可以与其他MATLAB用户MEX文件。
有关编写S-功能的信息,请参阅您的Simulink万博1manbetx®文档。
要调用MEX函数,其他人创建的,请参阅MEX文件功能。
如果你有一个C / C ++程序,并想从程序中调用MATLAB函数,然后使用引擎API之一。
如果你想读的和从C / C ++程序写入数据MATLAB,然后使用MATLAB C API来读取MAT文件数据。
mexFunction |
入口点用C矩阵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风格的输出例程 |
mexErrMsgIdAndTxt |
具有标识符并返回到显示错误消息MATLAB提示 |
mexWarnMsgIdAndTxt |
警告消息标识符 |
mexIsLocked |
确定MEX文件被锁定 |
mexLock |
从内存中清除防止MEX文件 |
mexUnlock |
允许从内存中清除MEX文件 |
mexMakeArrayPersistent |
MEX文件完成之后,并使阵列持续 |
mexMakeMemoryPersistent |
使内存分配由MATLAB软件MEX-功能完成之后持续 |
这个例子显示了如何创建arrayProduct
C MEX函数与C矩阵API构建。
链接到用于MEX函数示例的源代码。
运用mxArray
在MEX文件。
规则管理mxArray
记忆。
C ++语言的问题创造与C矩阵API构建MEX功能时需要考虑的。
使用打印错误信息mexErrMsgIdAndTxt
功能。
如何在您的MEX文件中使用64位文件I / O。
如何排除的子类内置的MEX文件的输入参数的类型。
这个例子显示了如何构建示例C MEX函数arrayProduct
。
MATLAB 9.4版(R2018a)支持复数的交错表示万博1manbetx。
MATLAB 9.2版本(R2017a)建立与默认情况下,64位API MEX文件。
MATLAB版8.4(R2014b)把手的数据类型,从改变为图形对象双
至宾语。
为了帮助诊断编译器设置和构建错误,请拨打MEX
用详细选项-v功能。
编译MEX文件失败时该怎么办。
警告和错误消息的详细信息。
故障诊断和限制编译C / C ++ MEX文件使用MinGW-W64
故障排除MEX文件建有MinGW的-W64编译器。
每个MEX文件需要一个mexFunction
。
当你得到一个无效的MEX文件出错怎么办。
为了达到最佳效果,运行MEX文件建立与MATLAB版本。
如果从其他来源得到的二进制文件MEX,是确保该文件编译为要在其上运行它在同一平台。
不要从一个MEX文件调用MATLAB的单独的线程上的单个会话。
怎么办时,一个MEX文件会导致分段违例或断言。
怎么办时,你的MEX产生错误的答案。
建议使用Microsoft Visual Studio调试®。
这个例子说明如何在调试MEX文件苹果电脑平台。
这个例子说明了如何在Linux上调试MEX文件®平台。