メインコンテンツ

MathWorks.MATLAB.Types.MATLABArray

MATLAB 配列へのポインターを表す .NET クラス

R2022b 以降

説明

.NET アプリケーションで MATLAB® 型を表すには、MathWorks.MATLAB.Types.MATLABArray を使用します。この型を使用すると、配列の割り当てとデータのコピーの数が減ります。例については、MATLABArray を使用した配列の割り当ての削減を参照してください。

MATLAB 型から単一の .NET 型への直接のマッピングはありません。MATLAB は引数を dynamic .NET 型として返します。MATLABArray オブジェクトをアプリケーションに適した特定の .NET 型に変換します。例については、MATLAB から .NET への変数の引き渡しを参照してください。

クラスの詳細

名前空間:

MathWorks.MATLAB.Types
スーパークラス:System.Dynamic.DynamicObject
スーパークラス:System.IConvertible

すべて展開する

この例では、MATLABArray 型の変数と比較して、double 型の変数用に .NET アプリケーションがメモリをどのように割り当てるかを説明します。

この C# コードでは、アプリケーションは .NET スカラー値 (0 および 1) ごとに 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 スカラー値 (0 および 1) ごとに MATLAB 配列を作成し、linspace 関数に渡します。ただし、MATLABArray オブジェクトを使用すれば、アプリケーションは変数 x2 および y2 に対して追加の .NET 配列および MATLAB 配列を作成しません。

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

バージョン履歴

R2022b で導入