MATLAB Compiler SDK C++ API 摘要
MATLAB® Compiler SDK™ 提供了两种在 C++ 中部署 MATLAB 函数的方法。每个部署选项都有一组支持部署的 C++ API。您可以:
使用 MATLAB Data API (C++11) 部署到 C++ 应用程序
应用程序界面:MATLAB Compiler SDK C++ API 有两个选项:
通用接口(自 R2018a 起)
强类型接口 (自 R2021b 起)
数据接口:MATLAB Data API (C++11)
使用
mwArrayAPI (C++03) 部署到 C++ 应用程序应用程序界面:MATLABCompiler SDK C++ API
数据接口:
mwArrayAPI
使用 MATLAB Data API (C++11) 部署到 C++ 应用程序
通用接口(自 R2018a 起)
在这种方法中,您可以创建一个包含 MATLAB 函数的代码存档(
.ctf文件)并将其部署在 C++ 应用程序中。您可以使用 MATLAB Compiler SDK API for C++ 作为 C++ 应用程序与包含已部署 MATLAB 函数的代码存档之间的接口。
您使用 MATLAB Data API 来处理 C++ 应用程序和已部署的 MATLAB 函数之间的数据交换。MATLAB Data API 提供了
mwArrayAPI 所不具备的现代 C++11 功能,后者仅使用 C++03 功能。具体来说,MATLAB Data API 允许在可能的情况下移动数据而不是复制数据,自动管理资源清理,并最大限度地减少复制操作的次数。这种高效的数据处理增强了 C++ 应用程序和部署的 MATLAB 函数之间的交换。
强类型接口(自 R2021b 起)
在这种方法中,您创建一个包含 MATLAB 函数的代码存档(
.ctf文件),并生成相应的头文件(.hpp文件),以建立 C++ 和 MATLAB 数据类型之间的预定义映射。您可以在 C++ 应用程序中部署这些工件。该接口允许您定义一个契约,指定 MATLAB 如何解释和管理 C++ 数据类型。要创建此契约,您可以使用 MATLAB 函数中的
arguments模块,或 MATLAB 类中的properties和arguments模块的组合。例如,如果您的 C++ 应用程序采用表示实标量值的uint32数据类型,则可以在 MATLAB 代码中将其定义为(1,1) uint32 {mustBeReal}。此外,C++ 命名空间、类和公共方法与 MATLAB 对应部分保持一致,保持一致的命名,并且无需中间顶级函数。
注意
至于部署过程,部署到强类型接口与部署到通用接口的过程非常相似。唯一的区别在于部署的 MATLAB 函数 - 它需要修改才能反映 C++ 类型的 MATLAB 等效。
使用 mwArray API (C++03) 部署到 C++ 应用程序
在这种方法中,您基于要部署的 MATLAB 函数创建 C++ 共享库和头文件。使用较早期的 MATLAB Compiler SDK API for C++ 作为 C++ 应用程序与部署的 MATLAB 函数之间的接口。使用 mwArray API 处理 C++ 应用程序与部署的 MATLAB 函数之间的数据交换。mwArray API 使用 C++03 构造。