MATLAB® автоматически преобразовывает массивы в типы.NET, как описано в Таблице преобразования Типа примитива MATLAB. Чтобы передать массив символьных массивов, создайте массив ячеек. Для всех других типов используйте функцию NET.createArray
MATLAB.
MATLAB создает массив.NET, копирует элементы от массива MATLAB до массива.NET и передает его C#.
Вы получаете доступ к элементам массива.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
.
Если зубчатый массив многомерен, необходимо индивидуально преобразовать массивы в каждой размерности.