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