本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

MATLAB 与外部编程语言和系统集成

MATLAB® 可与其他编程语言进行灵活的双向集成,从而使您能够重用原有代码。有关编程语言和支持版本的列表,请参阅 MATLAB 支持的其他语言接口

MATLAB 中调用 C/C++ 代码

MATLAB 提供了以下功能,可帮助您将 C/C++ 算法集成到 MATLAB 应用程序中。

  • C/C++ 共享库接口是应用程序在运行时动态加载的函数集合。使用共享库的优点是可以将多个库函数打包到一个接口中。此外,MATLAB 还可以管理数据类型转换。

    • 调用 C++ 库函数 - 要调用 C++ 共享库中的函数,请使用 C++ 库 中所述的 clib 程序包。

    • 尽可能选择 C++ 接口而不是纯 C 接口。有关 C++ 支持的信息,请参阅这些限制

    • 要调用 C 共享库中的函数,请使用 calllib 函数。有关信息,请参阅 C 库。此功能最适合只包含 C 代码的库,但存在限制

    如果要更好地控制数据转换和内存管理,可以考虑编写一个 MEX 文件。

  • MEX 文件是 C/C++ 算法的封装程序代码,可处理从 MATLAB 数据类型到 C 类型的转换。相对于通过 MATLAB 共享库接口来调用函数,MEX 文件性能更优。此外,MEX 文件还能让您对数据转换和内存管理实现更多的编程控制。

    • C++ MEX 应用程序 使用现代 C++ 编程功能,并尽可能共享数据副本。

    • C MEX 文件应用程序使用 C 矩阵库并支持现有 MEX 函数。MathWorks 建议尽可能选择 C++ MEX 文件应用程序,而不是 C MEX。

    • 如果一个库中有多个函数或者没有性能问题,可以考虑编写 C++ 库接口。

这些功能要求您具备一定的 C/C++ 编程技能,以创建库接口或编写 MEX 函数。但是,您可以将生成的库或 MEX 函数提供给任何 MATLAB 用户。最终用户可以像调用任何 MATLAB 函数一样调用这些功能,而无需了解 C/C++ 语言实现的背景知识。

要从 C/C++ 语言程序调用 MATLAB,请参阅 用于 C++ 的 MATLAB 引擎 API用于 C 的 MATLAB 引擎 API

MATLAB 中使用来自其他编程语言的对象

如果您有其他编程语言的函数和对象,可以从 MATLAB 中调用它们。要将这些对象集成到 MATLAB 应用程序中,您并不一定要具备软件开发技能。但是,您需要具有第三方库文档的访问权限。

MATLAB 支持调用以下语言的函数,也支持使用以下语言的对象。

从另一种编程语言中调用 MATLAB

您可以使用引擎应用程序从另一种语言中调用 MATLAB。使用 MATLAB 引擎 API,您可从自己的应用程序中调用 MATLAB 函数。MATLAB 具有适用于以下语言的 API。

要创建引擎应用程序,请安装 MATLAB 支持的编译器,并使用 mex 命令来编译应用程序。

将您的函数作为 MATLAB 函数来调用

您可以编写自己的函数,并使用 MEX API 将它们作为 MATLAB 函数进行调用。您可以编写以下语言的 MEX 函数。

要创建 MEX 文件,请安装 MATLAB 支持的编译器,并使用 mex 命令来编译函数。

与 Web 服务通信

您可以从 MATLAB 中与 Web 服务进行通信。

  • MATLAB RESTful Web 服务函数允许非编程人员使用 HTTP GET 和 POST 方法访问许多 Web 服务。

  • 对于 RESTful Web 服务函数不支持的功能,可以使用 HTTP 接口类来编写自定义的 Web 访问应用程序。

  • 如果您的 Web 服务基于 Web 服务描述语言 (WSDL) 文档技术,则可以使用 MATLAB WSDL 函数

相关主题

外部网站