В следующей таблице перечислены правила преобразования данных, использованные при преобразовании нативных типов.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 MATLAB |
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 должен быть скаляр. |
Char массив |
| |
String | MATLAB | |
String массив |
|
Правила преобразования: логические массивы 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
- N
Символьный массив MATLAB, с N
равняйтесь длине строки.NET.
Массив строк.NET (string[]
) преобразован в M
- N
символьный массив, с M
равняйтесь числу элементов в строке ([]
) массив и N
равняйтесь максимальной длине строки в массиве.
Выше размерные массивы String
так же преобразованы.
В общем случае N
- размерный массив String
преобразован в N
+1 размерный символьный массив MATLAB с соответствующим нулевым дополнением, где предоставленные строки имеют различные длины.
Продукт MATLAB Compiler SDK не поддерживает возврат следующих типов массива MATLAB, потому что они не CLS-совместимы:
int8
uint16
uint32
uint64
Однако допустимо передать эти типы в качестве аргументов к компоненту MATLAB Compiler SDK.