ジャグ配列の受け渡し
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
メソッドに渡すことができます。