Main Content

ジャグ配列の受け渡し

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[][] RetValMethodStringArr(NetPackage.StringClass this,
System.String[][] arr)

メソッドに渡す MATLAB 文字ベクトルは、次のとおりです。

str1 = {'this', 'is'}; 
str2 = 'jagged';

2 つの配列を含む、System.String 型配列の変数 netArr を作成します。NET.createArray を使用して、この配列の typeNameSystem.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);

str1str2netArr に代入します。

netArr(1) = str1;
netArr(2,1) = str2;

str2 はスカラーですが netArr(2) は配列でなければならないため、str2 を特定の要素 netArr(2,1) に対応付けなければなりません。

これで netArrMethodStringArr メソッドに渡すことができます。

class(netArr)
ans =
System.String[][]

多次元のジャグ配列引数を使用した .NET メソッドの呼び出し

この例では、System.Double 型の多次元ジャグ配列入力引数でメソッド MethodMultiDArr に渡すための MATLAB 配列を作成する方法を説明します。

以下に MethodMultiDArr の MATLAB 関数シグネチャを示します。入力は 1 次元要素を含む多次元ジャグ配列です。

戻り値の型名前引数
System.Double[][,] RetValMethodMultiDArr (NetPackage.NumericClass this,
System.Double[][,] arr)

System.Double[] 型の typeName23 列の配列を作成します。

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;

配列 arrSystem.Double[][,] 型のジャグ配列です。

arr
arr = 

  Double[][,] with properties:

            Length: 6
        LongLength: 6
              Rank: 2
          SyncRoot: [1x1 System.Double[][,]]
        IsReadOnly: 0
       IsFixedSize: 1
    IsSynchronized: 0

これで arrMethodMultiDArr メソッドに渡すことができます。