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