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, как описано в Array Indexing. Необходимо задать индекс для каждой размерности массива .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 функция.
Если заземленный массив многомерен, необходимо индивидуально преобразовать массивы в каждой размерности.