主要内容

c++墨西哥人的应用程序

创建高性能MATLAB®函数在现代c++中实现

使用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.如果您的MEX函数必须在MATLAB R2017b或更早版本中运行,或者如果您喜欢使用C语言,那么使用矩阵C API这与mxArray数据结构。有关更多信息,请参见用C语言调用MATLAB

c++类

matlab:墨西哥人:函数 c++ MEX函数的基类
matlab:墨西哥人::ArgumentList 用于输入和输出c++ MEX函数的容器

进程外执行

mexhost 为c++ MEX函数创建主机进程
函数宏指令 在MEX主机进程中评估c++的MEX函数
matlab.mex.MexHost 用于c++ MEX函数执行的进程外主机

主题

开始创建c++ MEX函数

c++墨西哥人的功能

MEX文件实现用c++编写的MATLAB函数。

创建一个c++ MEX源文件

下面是如何创建一个基本的c++ MEX函数。

设置和构建MEX文件

构建c++ MEX程序

在不同的平台上构建MEX应用程序。

测试构建环境

使用预定义的c++ MEX文件测试构建环境。

c++ 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函数的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类的方法。