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

Создание системы. 'double'. СЕТЕВОЙ зубчатый массив

Этот пример показывает, как создать зубчатый массив.NET System.Double с помощью функции NET.createArray.

Создайте три массива элемента. Можно передать jArr любому методу.NET с аргументом ввода или вывода типа System.Double[][] '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.

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

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

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

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

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

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

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

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

Создайте 2-by-3 массив с typeName System.Double[] '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.

Была ли эта тема полезной?