将 MATLAB 与外部编程语言和系统集成
MATLAB® 可与其他编程语言进行灵活的双向集成,从而使您能够重用原有代码。有关编程语言和支持版本的列表,请参阅 MATLAB 支持的与其他语言的接口。
从 MATLAB 中调用 C/C++ 代码
MATLAB 提供了以下功能,可帮助您将 C/C++ 算法集成到 MATLAB 应用程序中。
C/C++ 共享库接口是应用程序在运行时动态加载的函数集合。使用共享库的优点是可以将多个库函数打包到一个接口中。此外,MATLAB 还可以管理数据类型转换。
调用 C++ 库函数 - 要调用 C++ 共享库中的函数,请使用 从 MATLAB 中调用 C++中所述的
clib
命名空间。尽可能选择 C++ 接口而不是纯 C 接口。有关 C++ 支持的信息,请参阅这些限制。
要调用 C 共享库中的函数,请使用
calllib
函数。有关信息,请参阅 从 MATLAB 中调用 C。此功能最适合只包含 C 代码的库,但存在限制。
如果要更好地控制数据转换和内存管理,可以考虑编写一个 MEX 文件。
MEX 文件是 C/C++ 算法的包装程序代码,可处理从 MATLAB 数据类型到 C 类型的转换。相对于通过 MATLAB 共享库接口来调用函数,MEX 文件性能更优。此外,MEX 文件还能让您对数据转换和内存管理实现更多的编程控制。
编写可从 MATLAB(MEX 文件)调用的 C++ 函数 使用现代 C++ 编程功能,并尽可能共享数据副本。
编写可从 MATLAB(MEX 文件)调用的 C 函数 使用 C Matrix API 并支持现有 MEX 函数。MathWorks® 建议尽可能选择 C++ MEX 文件应用程序,而不是 C MEX。但是,如果您的 MEX 函数必须在 MATLAB R2017b 或更早版本中运行,则使用 C 矩阵库编写 MEX 函数。
如果一个库中有多个函数或者没有性能问题,可以考虑编写 C++ 库接口。
这些功能要求您具备一定的 C/C++ 编程技能,以创建库接口或编写 MEX 函数。但是,您可以将生成的库或 MEX 函数提供给任何 MATLAB 用户。最终用户可以像调用任何 MATLAB 函数一样调用这些功能,而无需了解 C/C++ 语言实现的基础背景知识。
要从 C/C++ 语言程序调用 MATLAB,请参阅从 C++ 调用 MATLAB 或从 C 调用 MATLAB。
在 MATLAB 中使用来自其他编程语言的对象
如果您有其他编程语言的函数和对象,可以从 MATLAB 中调用它们。要将这些对象集成到 MATLAB 应用程序中,您并不一定要具备软件开发技能。但是,您需要具有第三方库文档的访问权限。
MATLAB 支持调用以下语言的函数,也支持使用以下语言的对象。
从另一种编程语言中调用 MATLAB
您可以使用引擎应用程序从另一种语言中调用 MATLAB。使用 MATLAB Engine API,您可从自己的应用程序中调用 MATLAB 函数。MATLAB 具有适用于以下语言的 API。
要创建引擎应用程序,请安装 MATLAB 支持的编译器,并使用 mex
命令编译应用程序。
将您的函数作为 MATLAB 函数来调用
您可以编写自己的函数,并使用 MEX API 将它们作为 MATLAB 函数进行调用。有关详细信息,请参阅选择 MEX 应用程序。您可以编写以下语言的 MEX 函数。
要创建 MEX 文件,请安装 MATLAB 支持的编译器,并使用 mex
命令编译函数。
与 Web 服务通信
您可以从 MATLAB 中与 Web 服务进行通信。
MATLAB RESTful Web 服务函数允许非编程人员使用 HTTP GET 和 POST 方法访问许多 Web 服务。
对于 RESTful Web 服务函数不支持的功能,可以使用 HTTP 接口类来编写自定义的 Web 访问应用程序。
如果您的 Web 服务基于 Web 服务描述语言 (WSDL) 文档技术,则可以使用 MATLAB WSDL 函数。