Передайте объединенные массивы

Создайте массив с jagged .NET System.Double

В этом примере показано, как создать массив jagged .NET из System.Double использование NET.createArray функция.

Создайте массив трех элементов. Можно пройти jArr любому методу .NET с входом или выходным аргументом типа System.Double[][].

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

Вызов метода .NET с аргументами jagged array System.String

В этом примере показано, как создать массив MATLAB® векторы символов для передачи в метод, MethodStringArr, с System.String[][] входной параметр.

Ниже представлена сигнатура функции MATLAB для MethodStringArr.

Тип возвратаИмяАргументы
System.String[][] RetValMethodStringArr(NetPackage.StringClass this,
Строка [] [] arr)

MATLAB, векторы символов вы хотите передать в метод:

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

Создайте переменную, netArr, из System.String массивы, который содержит два массива. Использование NET.createArray, а typeName для этого массива System.String[], и размерность 2.

netArr = NET.createArray('System.String[]',2);

Массивы содержат пустые строки.

Создание System.String массивы, соответствующие векторам символов MATLAB, str1 и str2.

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 с многомерными аргументами в виде Массива

В этом примере показано, как создать массив MATLAB, чтобы передать в метод, MethodMultiDArr, с многомерным входным параметром в виде зубчатых массивов System.Double тип.

Ниже представлена сигнатура функции MATLAB для MethodMultiDArr. Вход является многомерным зубчатым массивом, который содержит одномерные элементы.

Тип возвратаИмяАргументы
System.Double[][,] RetValMethodMultiDArr (NetPackage.NumericClass this,
System.Double [] [,] arr)

Создайте 2-by- 3 массив с typeName от System.Double[].

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 способ.