В следующей таблице перечислены правила преобразования данных, использованные при преобразовании нативных типов.NET в массивы MATLAB®.
Правила преобразования, перечисленные в этих таблицах, применяются к скалярам, векторам, матрицам и многомерным массивам нативных перечисленных типов.
Правила преобразования: управляемые типы к массивам MATLAB
| Нативный тип.NET | Массив MATLAB | Комментарии |
|---|---|---|
|
| — |
|
| Доступный только, когда аргумент конструктора |
|
| |
|
| |
|
| |
|
| |
|
| 'none' |
|
| 'none' |
В следующей таблице перечислены правила преобразования данных, использованные при преобразовании массивов MATLAB в нативные типы.NET.
Правила преобразования применяются к скалярам, векторам, матрицам и многомерным массивам перечисленных типов MATLAB.
Правила преобразования: массивы MATLAB к управляемым типам
Тип MATLAB | (Примитивный) Тип.NET | Тип.NET (Класс) | Комментарии |
|---|---|---|---|
| Нет данных |
| Ячейка и массивы структур не имеют никакого соответствующего типа.NET. |
| Нет данных |
| |
|
|
| |
|
|
| Значением по умолчанию является тип дважды. |
|
|
| |
|
|
| Преобразование в эквивалентный тип без знака не поддержано |
|
|
| Преобразование в эквивалентный тип без знака не поддержано |
|
|
| Преобразование в эквивалентный тип без знака не поддержано |
|
|
| 'none' |
|
|
| 'none' |
Указатель на функцию | Нет данных | Нет данных | 'none' |
Объект | Нет данных | Нет данных | 'none' |
В порядке создать интерфейсы.NET, которые описывают безопасный с точки зрения типов API MATLAB Compiler SDK™, сгенерировал компонент, необходимо выбрать типы.NET, используемые для параметров ввода и вывода.
Когда выбор ввел типы, рассматривает, как входные параметры.NET становятся типами MATLAB. Когда выбор вывел типы, рассматривает обратное преобразование
Следующие таблицы приводят результаты преобразования данных, и правила раньше преобразовывали типы.NET в массивы MATLAB и массивы MATLAB к типам.NET.
Недопустимые преобразования приводят к выданному ArgumentException
Результаты преобразования: типы.NET к типам MATLAB
Тип.NET | Преобразовывает в тип MATLAB |
|---|---|
| numeric |
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Скалярный struct.NET | Struct MATLAB создается из полей экземпляра public struct.NET |
Struct.NET [N] |
|
Struct.NET [ | Struct MATLAB [ |
native.MWStructArray | struct |
native.MWCellArray | cell |
Hashtable | struct |
Dictionary <K, V>Где | struct |
ArrayList | cell |
| Любой другой тип.NET в домене приложения по умолчанию | Объект.NET |
| Любой другой сериализуемый.NET вводит в домене приложения не по умолчанию | Объект.NET |
Правила преобразования: MATLAB числовые типы к типам.NET
| Преобразовывать этот тип MATLAB: | К этому: | Следуйте этим правилам: |
|---|---|---|
numeric | Скаляр | Тип должен быть скаляром в MATLAB. Например, 1 X 1 |
| Вектор | Тип должен быть вектором в MATLAB. Например, 1 X | |
массив |
|
При преобразовании MATLAB позволены массивы numeric, расширении преобразований. Например, int может быть преобразован в double. Заданный тип должен быть числовым типом, который равен или более широк. Сужение преобразований выдает ArgumentException.
Типы.NET не так гибки как типы MATLAB. Заботьтесь и протестируйте соответственно с.NET выходные параметры перед объединяющимися данными в ваши приложения.
Правила преобразования: массивы символов MATLAB к типам.NET
| Преобразовывать этот тип MATLAB: | К этому: | Следуйте этим правилам: |
|---|---|---|
char | Char | char должен быть скаляром. |
CharArray |
| |
String | MATLAB массив | |
StringArray |
|
Правила преобразования: логические массивы MATLAB к типам.NET
| Преобразовывать этот тип MATLAB: | К этому: | Следуйте этим правилам: |
|---|---|---|
logical | Boolean | logical должен быть скаляром. |
Boolean[] | Массивом | |
Массив Boolean |
|
Правила преобразования: массив ячеек к типам.NET
| Преобразовывать этот тип MATLAB: | К этому: | Следуйте этим правилам: |
|---|---|---|
cell | System.Array |
|
ArrayList | Массив cell MATLAB должен быть вектором. |
Если массив cell MATLAB содержит struct, он оставлен без изменений. Все другие типы преобразованы в нативные типы. Любой вложил массив cell, преобразован в System.Array, совпадающий с размерностью массива cell, как проиллюстрировано в этом фрагменте кода:
Let C = {[1,2,3], {[1,2,3]},'Hello world'}
% be a cell
C может быть преобразован в object[1,3], где object[1,1] содержит int[,], object[1,2] содержит object[1,1], первым элементом которого является int[,], и object[1,3] содержит char[,].Любой вложенный массив ячеек преобразован в System.Array, который совпадает с размерностью массива cell
Правила преобразования: Struct к типам.NET
| Преобразовывать этот тип MATLAB: | К этому: | Следуйте этим правилам: |
|---|---|---|
struct | .NET struct | Имя и номер общедоступных полей в заданном struct.NET должно совпадать с именем и номером полей в struct MATLAB. |
Hashtable | Скалярный |
Правила преобразования: объекты.NET в MATLAB к собственным объектам.NET
| Преобразовывать этот Тип MATLAB: | К этому: | Следуйте этим правилам: |
|---|---|---|
| Объект.NET | Тип или супертип содержания объекта | A. СЕТЕВОЙ объект в MATLAB может только быть преобразован в тип или супертип. |
Нативная строка.NET преобразована в 1-by-N символьный массив MATLAB с N, равным длине строки.NET.
Массив строк.NET (string[]) преобразован в M-by-N символьный массив с M, равным числу элементов в строке ([]) массив и N, равный максимальной длине строки в массиве.
Выше размерные массивы String так же преобразованы.
В целом N - размерный массив String преобразован в +1 N размерный символьный массив MATLAB с соответствующим нулевым дополнением, где предоставленные строки имеют различные длины.
Продукт MATLAB Compiler SDK не поддерживает возврат следующих типов массива MATLAB, потому что они не CLS-совместимы:
int8
uint16
uint32
uint64
Однако допустимо передать эти типы в качестве аргументов к компоненту MATLAB Compiler SDK.