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 Production Server 上运行时,请遵循相同的基本流程:
- 创建您的 MATLAB 应用程序代码。
- 使用交互式应用或通过命令行将您的 MATLAB 代码打包到特定于语言的组件中,或打包为 MATLAB Production Server 的可部署存档。
- 使用您首选的开发环境(如 Visual Studio®、Eclipse®、XCode 或其他环境)将组件或 MATLAB Production Server 客户端库与主机应用程序集成。
- 完成您的应用程序并将其安装在目标计算机上(桌面应用程序采用本地安装,基于服务器的应用程序采用集中式安装)
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++ 代码和库。
.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,以便您能够将您的类作为永久服务运行,或者跨多个进程执行您的组件。
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) 接口将您的类作为永久服务运行,或者跨多个进程或计算机分散处理。
Python 应用程序
对于 Python 应用程序,MATLAB Compiler SDK 提供的功能可以:
- 生成 Python 包,以便 MATLAB 程序(包括 MEX 文件)能够由 Python 应用或交互访问。
- 将本地 Python 数据类型传递到 MATLAB 函数或者从其中传回来,并自动转换
- 使用随带的 Python 类,以可部署归档方式将多维数组传递到 MATLAB 函数或者从其中传回来。
- 使用 MATLAB Engine API 将您的 MATLAB 代码与 Python 应用程序集成。然后可以调试和部署到 MATLAB 生产服务器或使用 MATLAB Compiler SDK 构建的自定义 Python 应用程序。
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 Compiler SDK 生成的组件与 ASP.NET、SOA、WSDL、SOAP、XML、JavaScript®、HTML、HTTP 服务、Java servlet 和 JSP 以及 Java RMI 和 .NET 远程处理等标准技术相集成,从而实现可扩展性。对于需要处理大量并发请求的应用场合,您可以在应用程序服务器与编译的 MATLAB 代码之间创建 RMI 服务器的中间层。
打包您的组件
在打包过程中,MATLAB Compiler SDK 仅包含运行程序以优化所生成组件大小所必需的 MATLAB 函数和文件。MATLAB 代码经过加密,以保护您的源代码不被应用程序用户破坏。
分发您的组件
所有部署的应用软件和组件都使用 MATLAB Runtime,以便免特许费分发给没有 MATLAB 的用户。对于桌面平台,应用程序和 Runtime 直接安装在目标计算机上;对于 Web 和企业应用程序,相关的 Runtime 可以安装在中央服务器上,以便于管理和分发。为了为您的应用程序用户提供最佳体验,MATLAB Compiler SDK 允许您指定是为 MATLAB Runtime 提供安装包还是在安装过程中自动下载。
Java 库集成:
支持 MATLAB 字符串数组
Python 包集成的 Python 版本支持:
增加了对 Python 3.8 的支持
关于这些特性和相应函数的详细信息,请参阅 发行说明。