ジャグ配列の受け渡し
System.Double .NET ジャグ配列の作成
この例では、関数 NET.createArray を使用して System.Double 型の .NET ジャグ配列を作成する方法を説明します。
3 要素の配列を作成します。jArr は、System.Double[][] 型の入力引数または出力引数をもつ任意の .NET メソッドに渡すことができます。
jArr = NET.createArray('System.Double[]',3)
jArr =
Double[][] with properties:
Length: 3
LongLength: 3
Rank: 1
SyncRoot: [1×1 System.Double[][]]
IsReadOnly: 0
IsFixedSize: 1
IsSynchronized: 0
System.String 型のジャグ配列引数を使用した .NET メソッドの呼び出し
この例では、MATLAB® 文字ベクトルの配列を作成して System.String[][] 入力引数で MethodStringArr メソッドに渡す方法を説明します。
以下に MethodStringArr の MATLAB 関数シグネチャを示します。
| 戻り値の型 | 名前 | 引数 |
|---|---|---|
System.String[][] RetVal | MethodStringArr | (NetPackage.StringClass this, |
メソッドに渡す MATLAB 文字ベクトルは、次のとおりです。
str1 = {'this', 'is'};
str2 = 'jagged';
2 つの配列を含む、System.String 型配列の変数 netArr を作成します。NET.createArray を使用して、この配列の typeName を System.String[] に、次元を 2 にします。
netArr = NET.createArray('System.String[]',2);
配列には空の文字列が含まれています。
MATLAB 文字ベクトル、str1 および str2 に対応する System.String 配列を作成します。
netArr(1) = NET.createArray('System.String',2); netArr(2) = NET.createArray('System.String',1);
str1 と str2 を netArr に代入します。
netArr(1) = str1; netArr(2,1) = str2;
str2 はスカラーですが netArr(2) は配列でなければならないため、str2 を特定の要素 netArr(2,1) に対応付けなければなりません。
これで netArr を MethodStringArr メソッドに渡すことができます。
class(netArr)
ans = System.String[][]
多次元のジャグ配列引数を使用した .NET メソッドの呼び出し
この例では、System.Double 型の多次元ジャグ配列入力引数でメソッド MethodMultiDArr に渡すための MATLAB 配列を作成する方法を説明します。
以下に MethodMultiDArr の MATLAB 関数シグネチャを示します。入力は 1 次元要素を含む多次元ジャグ配列です。
| 戻り値の型 | 名前 | 引数 |
|---|---|---|
System.Double[][,] RetVal | MethodMultiDArr | (NetPackage.NumericClass this, |
System.Double[] 型の typeName で 2 行 3 列の配列を作成します。
arr = NET.createArray('System.Double[]',2,3);要素は空の配列です。
メソッドに渡す MATLAB 配列は以下のとおりです。
A1 = [1 2 3]; A2 = [5 6 7 8];
MATLAB は、数値配列を等価の .NET 型に自動的に変換します。
arr(1,1) = A1; arr(1,2) = A2;
配列 arr は System.Double[][,] 型のジャグ配列です。
arr
arr =
Double[][,] with properties:
Length: 6
LongLength: 6
Rank: 2
SyncRoot: [1x1 System.Double[][,]]
IsReadOnly: 0
IsFixedSize: 1
IsSynchronized: 0これで arr を MethodMultiDArr メソッドに渡すことができます。