Поддерживать преобразование данных между управляемыми типами.NET и MATLAB® типы, MATLAB Compiler SDK™ обеспечивает набор классов преобразования данных, выведенных из абстрактного класса MWArray
. Эти классы позволяют вам передавать большинство нативных типов значения.NET как параметры непосредственно, не используя явное преобразование данных. Вы ссылаетесь на MWArray
блок в вашем управляемом приложении, чтобы преобразовать нативные массивы в массивы MATLAB и наоборот. Этот процесс называется data marshaling.
Когда вы вызываете метод на компонент, параметры ввода и вывода являются производным типом MWArray
. Чтобы передать параметры, можно или инстанцировать одного из MWArray
подклассы явным образом, или, во многих случаях, передают параметры как managed data type и используют неявную функцию преобразования данных MATLAB Compiler SDK.
Для примеров, которые демонстрируют инструкции для ручного преобразования данных между различными собственными типами данных и типами, совместимыми с MATLAB, смотрите, Преобразуют Данные Между.NET и MATLAB.
MWArray
классы преобразования данных создаются как иерархия классов, которая представляет главные типы массива MATLAB.
MWArray
MWIndexArray
MWCellArray
MWCharacterArray
MWLogicalArray
MWNumericArray
MWStructArray
Корнем иерархии является MWArray
абстрактный класс. MWIndexArray
также абстрактный класс. Другие подклассы представляют главные типы массива MATLAB: MWNumericArray
, MWLogicalArray
, MWCharArray
, MWCellArray
, и MWStructArray
.
MWArray
и его производные классы обеспечивают следующую функциональность:
Конструкторы и деструкторы, чтобы инстанцировать и избавиться от массивов MATLAB
Свойства добраться и установить данные об основном массиве
Индексаторы, чтобы поддержать подмножество индексации массива MATLAB
Неявные и явные операторы преобразования данных
Общие методы
Для получения информации об этих классах преобразования данных см. Справочник по библиотеке классов MWArray, который также доступен в
папка, где matlabroot
\help\dotnetbuilder\MWArrayAPImatlabroot
представляет вашу папку установки MATLAB.
В большинстве экземпляров, если вы используете нативный примитивный.NET или массив как входной параметр в программе C#, MATLAB Compiler SDK автоматически и прозрачно преобразуете его в экземпляр соответствующего MWArray
класс прежде, чем передать его сгенерированному методу. MATLAB Compiler SDK преобразует большинство CLS-совместимых строк, числовых типов или многомерных массивов этих типов к соответствующему MWArray
ввод. Для списка неподдерживаемых типов смотрите Неподдерживаемые Типы массива MATLAB. Это преобразование прозрачно в приложениях C#, но может потребовать явного оператора кастинга на других языках, например, op_implicit
в Visual Basic®.
Например, рассмотрите оператор.NET:
result = theFourier.plotfft(3, data, interval);
В этом операторе, аргументе interval
имеет собственный тип.NET System.Double
. MATLAB Compiler SDK бросает этот аргумент к MATLAB, 1 на 1 удваивают MWNumericArray
введите, который является классом обертки, содержащим двойной массив MATLAB.
Все данные, возвращенные от функции MATLAB до метода.NET, представлены как экземпляр соответствующего MWArray
подкласс. Например, массив ячеек MATLAB возвращен как MWCellArray
объект.
Возвращенные данные автоматически не преобразованы в нативный массив. Если необходимо получить соответствующий нативный тип массива, вызовите ToArray
метод, который преобразует массив MATLAB в соответствующий собственный тип данных за некоторыми исключениями. Массивы ячеек, массивы структур и массивы комплексных чисел не доступны как нативные типы.NET. Чтобы представлять эти типы данных, необходимо создать экземпляр MWCellArray
, MWStructArray
, или MWNumericArray
, соответственно.
Для списка собственных типов данных.NET и их эквивалентов в MATLAB, см. Правила для Преобразования Данных Между.NET и MATLAB.