MATLAB Compiler SDK

利用 MATLAB 程序生成软件组件

 

MATLAB Compiler SDK™ 扩展了 MATLAB Compiler™ 的功能,可让您将 MATLAB® 程序构建成 C/C++ 共享库、Microsoft® .NET 程序集、Java® 类和 Python® 包。这些组件可以与自定义应用程序集成,然后部署到桌面、Web 和企业系统。

MATLAB Compiler SDK 包括 MATLAB Production Server™ 的开发版本,将应用程序代码和 Excel 插件部署到 Web 应用程序和企业系统之前,可以利用该版本对其进行测试和调试。

使用 MATLAB Compiler SDK 中的软件组件创建的应用程序可以与不需要 MATLAB 的用户共享,免特许费。这些应用程序使用 MATLAB Runtime,即可以让编译的 MATLAB 应用程序或组件执行一组共享库。

使用 MATLAB Coder™ 从 MATLAB 生成 C 和 C++ 源代码。

快速入门:

将 MATLAB 程序整合到企业应用程序中

与桌面、服务器或 Web 应用程序集成。

构建软件组件

与另一种编程语言集成或在 MATLAB Production Server 上运行时,请遵循相同的基本流程:

  1. 创建您的 MATLAB 应用程序代码。
  2. 使用交互式应用或通过命令行将您的 MATLAB 代码打包到特定于语言的组件中,或打包为 MATLAB Production Server 的可部署存档。
  3. 使用您首选的开发环境(如 Visual Studio®、Eclipse®、XCode 或其他环境)将组件或 MATLAB Production Server 客户端库与主机应用程序集成。
  4. 完成您的应用程序并将其安装在目标计算机上(桌面应用程序采用本地安装,基于服务器的应用程序采用集中式安装)

将 MATLAB 代码打包到特定于语言的组件中。

桌面应用程序

C/C++ 应用软件

对于用 C/C++ 编写的应用程序,MATLAB Compiler SDK 提供的功能可以:

  • 创建线程安全的库。
  • 创建动态库文件,与 Visual Studio 无缝集成(用于 Windows® 应用程序)。
  • 在头文件中产生函数签名,在库文件中产生加密的代码,以便包括在 C 或 C++ 应用程序中。
  • 通过 C++ MATLAB Data API 共享库支持 C++ 11 功能以及类型安全和多线程安全。
  • 使用 C++ MATLAB Data API 共享库异步调用函数,此库可以在进程内或进程外运行。

您还可以使用 MATLAB Coder™ 将 MATLAB 程序转换为可读且可移植的 C/C++ 代码和库。

为 C/C++ 生成共享库。

.NET 和 COM 应用程序

对于用 .NET 或 COM 编写的应用程序,MATLAB Compiler SDK 提供的功能可以:

  • 围绕 MATLAB 程序生成 .NET 或 COM 包装程序,从而就像本机 .NET 和 COM 组件一样访问它们。
  • 使用 .NET Core 在非 Windows 平台上运行 .NET 应用程序。
  • 添加和访问 MATLAB 代码文件和 MEX 文件,作为您的组件的公共方法。
  • 通过公共语言规范 (CLS) 兼容的语言(包括 C#、F#、VB.NET 或 ASP.NET)调用 .NET 组件。
  • 通过 COM 兼容的技术(包括 Visual Basic® 或 ASP)调用 COM 对象。
  • 使用类型安全的接口与您的 .NET 应用程序中的现有接口集成。
  • 将 .NET 对象直接传递到编译的 MATLAB 函数或从该函数中传递 .NET 对象。
  • 使用数据转换类来手动转换数据和管理输出数据。
  • 通过 Web 或企业 SOA(面向服务的架构)支持 Windows Communication Foundation (WCF)。
  • 支持 .NET 远程处理 API,以便您能够将您的类作为永久服务运行,或者跨多个进程执行您的组件。

为 .NET Framework、.NET Core 和 COM 生成程序集。

Java 应用软件

对于 Java 应用程序,MATLAB Compiler SDK 提供的功能可以:

  • 围绕 MATLAB 程序生成 Java 包装程序,从而使其行为就像任何其他 Java 类一样。它还创建 Javadoc 来标识类的属性和方法。
  • 添加 MATLAB 文件和 MEX 文件,用作您的组件的外部可见的类方法。
  • 确保 Java 类可移植,从而可以在 MATLAB 支持的所有平台上运行。(注意,某些工具箱函数以依赖平台的 MEX 文件或本地库的形式实现,使这些函数和使用它们的任何 Java 组件变得特定于平台。)
  • 将本地 Java 数据类型传递给 MATLAB 函数并自动转换为 MATLAB 数据类型,或显式地选择要使用的数据类型。
  • 通过 SOA、SOAP 服务、WSDL、RMI 接口、HTTP 服务、Java servlet 和 JSP 访问部署为 Java 组件的 MATLAB Web 应用程序。
  • 使用远程方法调用 (RMI) 接口将您的类作为永久服务运行,或者跨多个进程或计算机分散处理。

生成 Java 类。

Python 应用程序

对于 Python 应用程序,MATLAB Compiler SDK 提供的功能可以:

  • 生成 Python 包,以便 MATLAB 程序(包括 MEX 文件)能够由 Python 应用或交互访问。
  • 将本地 Python 数据类型传递到 MATLAB 函数或者从其中传回来,并自动转换
  • 使用随带的 Python 类,以可部署归档方式将多维数组传递到 MATLAB 函数或者从其中传回来。
  • 使用 MATLAB Engine API 将您的 MATLAB 代码与 Python 应用程序集成。然后可以调试和部署到 MATLAB 生产服务器或使用 MATLAB Compiler SDK 构建的自定义 Python 应用程序。

生成 Python 软件包。

服务器应用程序

选择基础架构 – MATLAB Production Server 或自定义。

MATLAB Production Server

使用 MATLAB Production Server 在可扩展、可管理的安全平台上托管 MATLAB 程序。可以使用轻量级客户端库从 C/C++、.NET、Java 和 Python 应用程序调用 MATLAB Production Server 上托管的函数。MATLAB Production Server 还为您的函数提供了 RESTful 接口,可以从各种应用程序(如移动应用)进行调用。MATLAB Compiler SDK 包括 MATLAB Production Server 的开发版本,用于在部署到生产系统之前本地测试和调试应用程序代码。

MATLAB Production Server 为您的 MATLAB 程序提供了可扩展的安全服务器。

自定义应用程序服务器

对于偏向于使用自己的基础架构的开发人员,用 MATLAB Compiler SDK 生成的组件与 ASP.NET、SOA、WSDL、SOAP、XML、JavaScript®、HTML、HTTP 服务、Java servlet 和 JSP 以及 Java RMI 和 .NET 远程处理等标准技术相集成,从而实现可扩展性。对于需要处理大量并发请求的应用场合,您可以在应用程序服务器与编译的 MATLAB 代码之间创建 RMI 服务器的中间层。

MATLAB Compiler SDK 提供了用于开发您自己的自定义服务器基础架构的工具。

免特许费的加密分发

将您的 MATLAB 程序作为 C/C++ 共享库、Microsoft .NET 程序集、Java 类或 Python 库进行打包和分发。

打包您的组件

在打包过程中,MATLAB Compiler SDK 仅包含运行程序以优化所生成组件大小所必需的 MATLAB 函数和文件。MATLAB 代码经过加密,以保护您的源代码不被应用程序用户破坏。

打包您的组件。

分发您的组件

所有部署的应用软件和组件都使用 MATLAB Runtime,以便免特许费分发给没有 MATLAB 的用户。对于桌面平台,应用程序和 Runtime 直接安装在目标计算机上;对于 Web 和企业应用程序,相关的 Runtime 可以安装在中央服务器上,以便于管理和分发。为了为您的应用程序用户提供最佳体验,MATLAB Compiler SDK 允许您指定是为 MATLAB Runtime 提供安装包还是在安装过程中自动下载。

MATLAB Runtime 随您的组件一起安装。