编写c++函数MATLAB(墨西哥人文件)
创建高性能的函数,用现代c++实现,可以从MATLAB调用®
使用c++ MEX API创建MATLAB函数,提供c++程序的效率,并可以从MATLAB访问外部函数和库。c++ MEX API提供了以下特性:
使用现代c++编程特性和面向对象设计。
从MEX函数调用MATLAB函数。
无缝集成到MATLAB中,从MATLAB中获取输入并返回结果。
金宝app支持MATLAB数据类型和写时复制语义。
写入线程安全的多线程MEX函数。
在进程外执行c++ MEX函数。
请注意
函数在MATLAB c++ api中使用matlab::数据::数组
类中定义的MATLAB数据API for c++.如果您的MEX函数必须在MATLAB R2017b或更早版本中运行,或者您更喜欢在C语言中工作,那么请使用C矩阵API,它与mxArray
而是数据结构。有关更多信息,请参见编写MATLAB可调用C函数(MEX文件).
主题
创建c++ MEX函数
- c++ MEX函数
MEX文件实现了用c++编写的MATLAB函数。 - 创建一个c++ MEX源文件
如何创建一个基本的c++ MEX函数。
设置和构建MEX文件
- 构建c++ MEX程序
在不同的平台上构建MEX应用程序。 - 测试构建环境
使用预定义的c++ MEX文件测试构建环境。 - c++ mex API
使用c++ 11特性和c++ Engine API实现MEX函数。
c++ MEX函数的设计
- c++ MEX函数的结构
实现一个重写函数调用操作符的类()
创建一个函子对象。 - 避免在MEX函数中复制数组
避免复制大型数组的技术,以减少内存使用并提高执行速度。 - 从MEX函数管理外部资源
自定义MexFunction
类,以便更好地处理MEX函数使用的资源。 - 处理输入和输出
在MATLAB中检查输入的大小和类型,并显示错误信息。 - 在MATLAB命令窗口中显示输出
MEX函数可以在MATLAB命令窗口中显示输出。 - 使用mexCallMATLAB制作异步请求
调用回MATLAB时的行为异步
请求等matlab::引擎::MATLABEngine:: fevalAsync
.
MATLABMEX函数中的数据类型
- 类型、单元格和结构数组中的数据访问
单元格和结构数组允许您写入数组内容,而无需复制整个数组。 - 传递MEX函数数据的数据类型
定义正确的数据类型,以便在MATLAB和MEX函数之间传递数据。
调用MATLAB功能
- 从MEX函数调用MATLAB函数
调用MATLAB函数,从MEX函数传递参数并将参数返回给MEX函数。 - 在MEX函数中捕获异常
捕获在MEX函数中抛出的异常。 - 从MEX函数执行MATLAB语句
执行MATLAB语句在调用者的工作区中创建变量。
分离线程和进程
- 从MEX函数中的分离线程调用MATLAB
MEX函数可以使用c++ Engine异步API从用户创建的线程调用MATLAB。 - c++ MEX函数的进程外执行
在与MATLAB进程分离的进程中执行c++ MEX函数。
访问MATLAB变量
- 从MEX中设置和获取MATLAB变量
将变量放入或从MATLAB库和全局工作区中获取变量。 - MATLAB对象中的MEX函数
将MATLAB对象传递给MEX函数。 - 用MEX函数实现MATLAB类方法
可以使用MEX函数实现MATLAB类的方法。