Использование массивов с приложениями .NET

Передайте массивы MATLAB в .NET

MATLAB® автоматически преобразует массивы в типы .NET, как описано в таблице преобразования примитивных типов MATLAB. Чтобы передать массив символьных массивов, создайте массив ячеек. Для всех других типов используйте MATLAB NET.createArray функция.

MATLAB создает массив .NET, копирует элементы из массива MATLAB в массив .NET и передает его на C #.

Преобразование примитивных массивов .NET в массивы MATLAB

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

Для доступа к элементам массива .NET можно использовать только скалярную индексацию. Оператор двоеточия, описанный в созданиях , конкатенация и расширение матрицы, не поддерживается.

Использование функций Get и Set Instance

Также можно получить доступ к элементам массива .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

Перед использованием массива .NET необходимо преобразовать его в команду MATLAB.

  • Если форма массива прямоугольная, используйте соответствующую числовую функцию MATLAB.

  • Если массив не прямоугольный, используйте cell функция.

Если заземленный массив многомерен, необходимо индивидуально преобразовать массивы в каждой размерности.

См. также

|

Похожие темы