В следующей таблице перечислены правила преобразования данных, используемые при преобразовании собственных типов .NET в MATLAB® массивы.
Примечание
Правила преобразования, перечисленные в этих таблицах, применяются к скалярам, векторам, матрицам и многомерным массивам перечисленных собственных типов.
Правила преобразования: управляемые типы в массивы MATLAB
| Собственный тип .NET | Массив MATLAB | Комментарии |
|---|---|---|
|
| — |
|
| Доступно только, когда |
|
| |
|
| |
|
| |
|
| |
|
| Ничего |
|
| Ничего |
В следующей таблице перечислены правила преобразования данных, используемые при преобразовании массивов MATLAB в нативные типы .NET.
Примечание
Правила преобразования применяются к скалярам, векторам, матрицам и многомерным массивам перечисленных типов MATLAB.
Правила преобразования: массивы MATLAB в управляемые типы
Тип MATLAB | Тип .NET (примитив) | Тип .NET (класс) | Комментарии |
|---|---|---|---|
| Н/Д |
| Камеры и массивы структур не имеют соответствующего типа .NET. |
| Н/Д |
| |
|
|
| |
|
|
| По умолчанию это тип double. |
|
|
| |
|
|
| Преобразование в эквивалентный беззнаковый тип не поддерживается |
|
|
| Преобразование в эквивалентный беззнаковый тип не поддерживается |
|
|
| Преобразование в эквивалентный беззнаковый тип не поддерживается |
|
|
| Ничего |
|
|
| Ничего |
Указатель на функцию | Н/Д | Н/Д | Ничего |
Объект | Н/Д | Н/Д | Ничего |
В порядок создания .NET интерфейсов, которые описывают безопасный для типа API компонента, созданного SDK™ компилятора MATLAB, необходимо принять решение о типах .NET, используемых для параметров входа и вывода.
При выборе типов входных параметров учитывайте, как входы .NET становятся типами MATLAB. При выборе типов выходных данных учитывайте обратное преобразование
В следующих таблицах перечислены результаты преобразования данных и правила, используемые для преобразования типов .NET в массивы MATLAB и массивы MATLAB в типы .NET.
Примечание
Недопустимые преобразования приводят к выданному ArgumentException
Результаты преобразования: типы .NET в типы MATLAB
Тип .NET | Преобразование в тип MATLAB |
|---|---|
| numeric |
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Скалярный struct .NET | MATLAB struct построен из public поля образца struct .NET |
Структура .NET [N ] | MATLAB struct |
Структура .NET [M | Структура MATLAB [M |
native.MWStructArray | struct |
native.MWCellArray | cell |
Hashtable | struct |
Dictionary <K, V>Где | struct |
ArrayList | cell |
| Любой другой тип .NET в области приложения по умолчанию | Объект .NET |
| Любой другой сериализуемый тип .NET в области приложения, не используемом по умолчанию | Объект .NET |
Правила преобразования: числовые типы MATLAB в типы .NET
| Преобразование этого типа MATLAB: | Для этого: | Следуйте следующим правилам: |
|---|---|---|
numeric | Скаляр | Тип должен быть скалярным в MATLAB. Для примера - |
| Вектор | Тип должен быть вектором в MATLAB. Для примера - | |
-мерный массив | The |
Совет
При преобразовании MATLAB numeric массивы, допускается расширение преобразований. Для примера, int можно преобразовать в double. Заданный тип должен быть числовым типом, равным или более широким. Сужение преобразования выдают ArgumentException.
Внимание
Типы .NET не так гибки, как типы MATLAB. Позаботьтесь и протестируйте соответствующим образом выходные выходы .NET перед интеграцией данных в ваши приложения.
Правила преобразования: MATLAB Char Arrays в типы .NET
| Преобразование этого типа MATLAB: | Для этого: | Следуйте следующим правилам: |
|---|---|---|
char | Char | The char должно быть скалярным. |
Char массив | The | |
String | Файлы MATLAB | |
String массив | The |
Правила преобразования: Логические массивы MATLAB в типы .NET
| Преобразование этого типа MATLAB: | Для этого: | Следуйте следующим правилам: |
|---|---|---|
logical | Boolean | The logical должно быть скалярным. |
Boolean[] | Система MATLAB | |
Boolean массив | The |
Правила преобразования: массив ячеек в типы .NET
| Преобразование этого типа MATLAB: | Для этого: | Следуйте следующим правилам: |
|---|---|---|
cell | System.Array | The |
ArrayList | Система MATLAB cell массив должен быть вектором. |
Внимание
Если MATLAB cell массив содержит 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 <reservedrangesplaceholder0> | Имя и количество общих полей в указанном struct .NET должны совпадать с именем и количеством полей в struct MATLAB. |
Hashtable | Скалярное |
Правила преобразования: объекты .NET в MATLAB в собственные объекты .NET
| Преобразование этого типа MATLAB: | Для этого: | Следуйте следующим правилам: |
|---|---|---|
| Объект .NET | Тип или супер-тип содержащего объекта | Объект .NET в MATLAB можно преобразовать только в тип или супертип. |
Собственная строка .NET преобразуется в 1-by- N MATLAB символьного массива, с N равно длине строки .NET.
Массив строк .NET (string[]) преобразуется в M-by- N символьный массив, с M равным количеству элементов в строке ([]) массив и N равен максимальной длине строки в массиве.
Более высокие размерные массивы String аналогично преобразуются.
В целом, an N-мерный массив String преобразуется в N+1 размерный символьный массив MATLAB с соответствующим нулевым заполнением, где поставляемые строки имеют разную длину.
MATLAB Compiler SDK не поддерживает возврат следующих типов массивов MATLAB, поскольку они не совместимы с CLS:
int8
uint16
uint32
uint64
Однако допустимо передать эти типы в качестве аргументов компоненту MATLAB Compiler SDK.