MATLAB Compiler SDK .NET API 摘要
MATLAB® Compiler SDK™ 提供了两种方法在用 C# 编写的 .NET 应用程序中部署 MATLAB 函数。每个部署选项都有一组支持部署的 C# API。您可以:
使用 MATLAB Data API for .NET 部署到 .NET 应用程序 (自 R2022b 起)
应用程序接口: MATLAB Compiler SDK .NET API 有两个选项:
通用接口 (自 R2022b 起)
强类型接口 (自 R2023b 起)
数据接口:适用于 .NET 的 MATLAB Data API (自 R2022b 起)
使用
MWArrayAPI 部署到 .NET 应用程序(自 R2006a 起)应用程序接口: MATLAB Compiler SDK .NET API
数据接口:
MWArrayAPI
使用 MATLAB Data API for .NET 部署到 .NET 应用程序
通用接口(自 R2022b 起)
在这种方法中,MATLAB Compiler SDK 生成一个代码存档(
.ctf文件),其中包含可以在 C# 应用程序中部署的 MATLAB 函数。您可以使用 MATLAB Compiler SDK API for .NET 作为 C# 应用程序与包含已部署 MATLAB 代码的代码存档之间的接口。
您使用 MATLAB Data API 来处理 C# 应用程序和已部署的 MATLAB 函数之间的数据交换。
强类型接口(自 R2023b 起)
在这种方法中,MATLAB Compiler SDK 生成三个基本组件。首先,它创建一个代码存档(
.ctf文件),其中封装了要部署的 MATLAB 函数。其次,它制作相应的 C# 包装器文件,建立 MATLAB 和 C# 输入和输出数据类型之间的映射,并允许 MATLAB 函数被调用为 .NET 方法。最后,它生成一个可代替 C# 包装器文件的 .NET 程序集。您可以在 C# 应用程序中部署这些工件。该接口允许您定义 MATLAB 和 C# 数据类型之间的映射。要创建这种映射,您可以使用 MATLAB 函数中的
arguments模块,或者 MATLAB 类中的properties和arguments模块的组合。例如,如果您的 C# 应用程序采用表示实标量值的uint32数据类型,则可以在 MATLAB 代码中将其定义为(1,1) uint32 {mustBeReal}。MATLAB 包映射到 C# 命名空间,MATLAB 类映射到 C# 结构,方法保留其名称和功能,从而无需额外的顶级函数。
限制
在 R2023b 中: MATLAB 不支持
handle类、函数varargin和varargout。
使用 MWArray API 部署到 .NET 应用程序
在这种方法中,MATLAB Compiler SDK 生成两组工件以集成到 C# 应用程序中。第一组由一个 C# 包装器文件和一个相应的汇编文件组成,两者都使用 MWArray 类作为参量和返回值。此配置反映了内在的 MATLAB 数据结构。
同时,MATLAB Compiler SDK 生成第二组相应的工件,它们使用本机 .NET System.Object 类型作为方法参数和返回。此变体提供了 MATLAB 函数的更加以 .NET 为中心的视角,用标准 .NETMWArray 实例替换 Object。这两组工件之间的部署选择取决于特定的集成需求以及开发人员对 MATLAB 的熟悉程度。
MWArray API 从 R2019b 版本开始支持 .NET Core,并从 R2022a 版本开始将此支持扩展到 .NET 5.0 及更高版本。