MATLAB ® автоматически преобразует массивы в типы .NET, как описано в таблице преобразования примитивных типов MATLAB. Чтобы передать массив символьных массивов, создайте массив ячеек. Для всех других типов используйте MATLAB.NET.createArray функция.
MATLAB создает массив .NET, копирует элементы из массива MATLAB в массив .NET и передает их в C #.
Для использования массива .NET в MATLAB вызовите соответствующую функцию преобразования MATLAB, как показано в разделе Преобразование массивов примитивного типа .NET в тип MATLAB. Например, предположим, что метод .NET возвращает netArr типа System.Int32[]:
netArr =
Int32[] with properties:
Length: 5
LongLength: 5
Rank: 1
SyncRoot: [1×1 System.Int32[]]
IsReadOnly: 0
IsFixedSize: 1
IsSynchronized: 0
Преобразование массива в массив MATLAB int32.
B = int32(netArr)
B = 1×5 int32 row vector 1 2 3 4 5
Объединение элементов в B с массивом MATLAB.
A = int32([11 12 13 14 15]); A + B
ans = 1×5 int32 row vector 12 14 16 18 20
Доступ к элементам массива .NET осуществляется с помощью подстрочных индексов, как и к массивам MATLAB.
Нельзя ссылаться на элементы многомерного массива .NET с одним индексом (линейное индексирование), как в MATLAB, как описано в разделе Индексирование массива. Необходимо указать индекс для каждого измерения массива .NET.
Скалярное индексирование можно использовать только для доступа к элементам массива .NET. Оператор двоеточия, описанный в разделах Создание, конкатенация и Расширение матриц, не поддерживается.
Кроме того, можно получить доступ к элементам массива .NET с помощью Set и Get функции экземпляра. При использовании Set или Get необходимо использовать индексирование массива C #, основанное на нуле.
Например, создайте два System.String массивы, с использованием Set функция и прямое назначение:
d1 = NET.createArray('System.String',3);
d1.Set(0, 'one');
d1.Set(1, 'two');
d1.Set(2, 'three');
d2 = NET.createArray('System.String',3);
d2(1) = 'one';
d2(2) = 'two';
d2(3) = 'zero';
Чтобы сравнить значения первых элементов в каждом массиве, введите:
System.String.Compare(d1(1),d2.Get(0))
Дисплеи MATLAB 0, что означает, что строки равны.
Перед использованием массива с зазором .NET необходимо преобразовать его в команду MATLAB.
Если форма массива прямоугольная, используйте соответствующую числовую функцию MATLAB.
Если массив не является прямоугольным, используйте cell функция.
Если зазубренный массив является многомерным, необходимо по отдельности преобразовать массивы в каждом измерении.