主要内容

MathWorks.MATLAB.Types.MATLABArray

表示指向 MATLAB 数组的指针的 .NET 类

自 R2022b 起

描述

在 .NET 应用程序中使用 MathWorks.MATLAB.Types.MATLABArray 来表示 MATLAB® 类型。使用这种类型可以减少数组分配和数据副本的数量。有关示例,请参阅使用 MATLABArray 减少数组分配

没有从 MATLAB 类型到单个 .NET 类型的直接映射。MATLAB 以 dynamic .NET 类型形式返回参量。将 MATLABArray 对象转换为您的应用程序的特定 .NET 类型。有关示例,请参阅将变量从 MATLAB 传递给 .NET

类详细信息

命名空间:

MathWorks.MATLAB.Types
超类:System.Dynamic.DynamicObject
超类:System.IConvertible

示例

全部展开

此示例描述与类型 MATLABArray 的变量相比,.NET 应用程序如何为 double 类型的变量分配内存。

在以下 C# 代码中,应用程序为每个 .NET 标量值(01)创建一个 MATLAB 数组以传递给 linspace 函数。它将从 linspace 返回的值复制到一个新的 .NET 数组 (x1)。接下来,它将 .NET 数组 x1 复制到一个新的 MATLAB 数组以传递给 sqrt 函数,并将从 sqrt 返回的值复制到一个新的 .NET 数组 (y1)。

using (dynamic matlab = MATLABEngine.StartMATLAB())
{
	double[] x1 = matlab.linspace(0, 1);
	double[] y1 = matlab.sqrt(x1);
}

在以下代码中,应用程序为每个 .NET 标量值(01)创建一个 MATLAB 数组以传递给 linspace 函数。但是,通过使用 MATLABArray 对象,应用程序不会为变量 x2y2 创建额外的 .NET 和 MATLAB 数组。

using (dynamic matlab = MATLABEngine.StartMATLAB())
{
	MATLABArray x2 = matlab.linspace(0, 1);
	MATLABArray y2 = matlab.sqrt(x2);
}

版本历史记录

在 R2022b 中推出