Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

编写可从 MATLAB(MEX 文件)调用的 C++ 函数

创建用现代 C++ 实现并可以从 MATLAB® 中调用的高性能函数

使用 C++ MEX API 创建具有以下特性的 MATLAB 函数:提供 C++ 程序的效率并且能够从 MATLAB 访问外部函数和库。C++ MEX API 提供以下功能:

  • 使用现代 C++ 编程功能和面向对象的设计。

  • 从 MEX 函数中调用 MATLAB 函数。

  • 无缝集成到 MATLAB 中,从 MATLAB 获取输入并向其返回结果。

  • 支持 MATLAB 数据类型和写入时复制 (copy-on-write) 语义。

  • 编写线程安全的多线程 MEX 函数。

  • 在进程外执行 C++ MEX 函数。

注意

MATLAB C++ API 中的函数使用 用于 C++ 的 MATLAB 数据 API 中定义的 matlab::data::Array 类。如果您的 MEX 函数必须在 MATLAB R2017b 或更早版本中运行,或者您更喜欢使用 C 语言,则请改用 C 矩阵 API,它可用于 mxArray 数据结构。有关详细信息,请参阅编写可从 MATLAB(MEX 文件)调用的 C 函数

C++ 类

matlab::mex::FunctionBase class for C++ MEX functions
matlab::mex::ArgumentListContainer for inputs and outputs from C++ MEX functions

进程外执行

mexhost为 C++ MEX 函数创建主机进程
feval在 MEX 主机进程中计算 C++ MEX 函数
matlab.mex.MexHost用于执行 C++ MEX 函数的进程外主机

主题

创建 C++ MEX 函数

设置和编译 MEX 文件

C++ MEX 函数的设计

MEX 函数中的 MATLAB 数据类型

调用 MATLAB 函数

单独的线程和进程

访问 MATLAB 变量