В следующей таблице перечислены правила преобразования данных, используемые при преобразовании собственных типов .NET в массивы MATLAB ® .
Примечание
Правила преобразования, перечисленные в этих таблицах, применяются к скалярам, векторам, матрицам и многомерным массивам перечисленных собственных типов.
Правила преобразования: управляемые типы в массивы MATLAB
| Собственный тип .NET | Массив MATLAB | Комментарии |
|---|---|---|
|
| — |
|
| Доступно только в том случае, если |
|
| |
|
| |
|
| |
|
| |
|
| Ничего |
|
| Ничего |
В следующей таблице перечислены правила преобразования данных, используемые при преобразовании массивов MATLAB в собственные типы .NET.
Примечание
Правила преобразования применяются к скалярам, векторам, матрицам и многомерным массивам перечисленных типов MATLAB.
Правила преобразования: массивы MATLAB в управляемые типы
Тип MATLAB | Тип .NET (примитив) | Тип .NET (класс) | Комментарии |
|---|---|---|---|
| Н/Д |
| Массивы ячеек и структур не имеют соответствующего типа .NET. |
| Н/Д |
| |
|
|
| |
|
|
| По умолчанию используется тип double. |
|
|
| |
|
|
| Преобразование в эквивалентный неподписанный тип не поддерживается |
|
|
| Преобразование в эквивалентный неподписанный тип не поддерживается |
|
|
| Преобразование в эквивалентный неподписанный тип не поддерживается |
|
|
| Ничего |
|
|
| Ничего |
Дескриптор функции | Н/Д | Н/Д | Ничего |
Объект | Н/Д | Н/Д | Ничего |
Для создания интерфейсов .NET, описывающих API-интерфейс MATLAB Compiler SDK™ сгенерированного компонента, необходимо выбрать типы .NET, используемые для входных и выходных параметров.
При выборе типов ввода учитывайте, как входные данные .NET становятся типами MATLAB. При выборе типов вывода учитывайте обратное преобразование
В следующих таблицах перечислены результаты преобразования данных и правила, используемые для преобразования типов .NET в массивы MATLAB и массивов MATLAB в типы .NET.
Примечание
Недопустимые преобразования приводят к возникновению ArgumentException
Результаты преобразования типов .NET в типы MATLAB
Тип .NET | Преобразование в тип MATLAB |
|---|---|
| numeric |
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Скалярная структура .NET | Структура MATLAB, построенная из public поля экземпляра структуры .NET |
Структура .NET [ N ] | Структура MATLAB |
Структура .NET [ | Структура 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[] | MATLAB | |
Boolean множество | |
Правила преобразования: массив ячеек в типы .NET
| Преобразование этого типа MATLAB: | Для этого: | Следуйте следующим правилам: |
|---|---|---|
cell | System.Array | |
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 множество
Правила преобразования: структура в типы .NET
| Преобразование этого типа MATLAB: | Для этого: | Следуйте следующим правилам: |
|---|---|---|
struct | .NET struct | Имя и количество открытых полей в указанной структуре .NET должны соответствовать имени и количеству полей в структуре MATLAB. |
Hashtable | Скаляр |
Правила преобразования: объекты .NET в MATLAB в собственные объекты .NET
| Преобразование этого типа MATLAB: | Для этого: | Следуйте следующим правилам: |
|---|---|---|
| Объект .NET | Тип или супертип содержащего объект | Объект .NET в 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.