Передача зубчатых массивов

Создание системы..NET зубчатый массив

То В этом примере показано, как создать.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 с системой. Строковое представление зубчатых аргументов Array

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

Следующее является подписью функции MATLAB для MethodStringArr.

Возвратите типИмяАргументы
System.String[][] RetValMethodStringArr(NetPackage. StringClass это,
Система. [] [] прибытие)

Векторы символов 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 с многомерными зубчатыми аргументами Array

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

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

Возвратите типИмяАргументы
System.Double[][,] RetValMethodMultiDArr (NetPackage. NumericClass это,
Система. [] [] прибытие)

Создайте 2- 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 метод.