В следующей таблице перечислены правила преобразования данных, использованные при преобразовании нативных типов.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 <KV>Где | 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.