exponenta event banner

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

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

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

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

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

См. также

|

Связанные темы