MWFlags
класс содержит набор форматирования массивов и флагов преобразования данных (См. Правила для Преобразования Данных Между.NET и MATLAB для получения дополнительной информации о преобразовании между MATLAB® и типами Автоматизации COM.) Все COM-компоненты MATLAB Compiler SDK™ содержат ссылку на MWFlags
объект, который может изменить правила преобразования данных на уровне объектов. Этот класс содержит эти свойства и метод:
ArrayFormatFlags
свойство управляет форматированием массивов (как матрица или массив ячеек) и приложение этих правил к вложенным массивам. MWArrayFormatFlags
класс является noncreatable классом, к которому получают доступ через MWFlags
экземпляр класса. Этот класс содержит шесть свойств:
Это свойство типа mwArrayFormat
управляет форматированием массивов, переданных как входные параметры методам класса MATLAB Compiler SDK. Значением по умолчанию является mwArrayFormatMatrix
. Поведения, обозначенные этим флагом, перечислены в следующей таблице.
Правила форматирования массивов для входных массивов
Значение | Поведение |
---|---|
|
Преобразует массивы согласно правилам преобразования по умолчанию, перечисленным в Правилах для Преобразования Данных Между.NET и MATLAB. |
|
Принуждает все массивы в массивы ячеек. Аргументы скалярного или числового массива входа преобразованы в массивы ячеек с каждой ячейкой, содержащей скалярное значение для соответствующего индекса. |
|
Принуждает все массивы в матрицы. Когда с входным параметром сталкиваются, который массив |
Это свойство управляет уровнем, на котором можно применить правило, установленное InputArrayFormat
свойство для вложенных массивов (массив Variant
s передается, и каждый элемент массива является самим массивом). Не необходимо изменить этот флаг для varargin
параметры. Код преобразования данных автоматически постепенно увеличивает значение этого флага 1 для varargin
ячейки, таким образом применяя InputArrayFormat
отметьте к каждой ячейке varargin
параметр. Значение по умолчанию 0
.
Это свойство типа mwArrayFormat
управляет форматированием массивов, переданных как выходные параметры методам класса. Значением по умолчанию является mwArrayFormatAsIs
. Поведения, обозначенные этим флагом, перечислены в следующей таблице.
Правила форматирования массивов для выходных массивов
Значение | Поведение |
---|---|
|
Преобразует массивы согласно правилам преобразования по умолчанию, перечисленным в Правилах для Преобразования Данных Между.NET и MATLAB. |
|
Принуждает все массивы в матрицы. Когда с выходным аргументом массива ячеек сталкиваются (поведение по умолчанию преобразует его в массив |
|
Принуждает все выходные массивы в массивы |
Это свойство похоже на InputArrayIndFalg
свойство, когда это управляет уровнем, на котором можно применить правило, установленное OutputArrayFormat
свойство для вложенных массивов. Как с входным случаем, этот флаг автоматически постепенно увеличивается 1 для varargout
параметр. Значением по умолчанию этого флага является 0
.
Этот флаг применяется к областям значений Excel® только. Когда целевой выход от вызова метода является областью значений ячеек в рабочем листе Excel, и размер выходного массива и форма не известны во время вызова, устанавливая этот флаг на True
дает коду преобразования данных команду изменять размер каждой области значений Excel, чтобы соответствовать выходному массиву. Изменение размеров применяется относительно левого верхнего угла каждой предоставленной области значений. Значением по умолчанию для этого флага является False
.
Установка этого флага к True
транспонирует выходные аргументы. Этот флаг полезен при обработке выходного параметра от вызова метода на COM-компоненте, где функция MATLAB возвращает выходные параметры как векторы-строки, и вы желаете поместить данные в столбцы. Значением по умолчанию для этого флага является False
.
DataConversionFlags
свойство управляет, как входные переменные обрабатываются, когда приведение типа необходимо. MWDataConversionFlags
класс является noncreatable классом, к которому получают доступ через MWFlags
экземпляр класса. Этот класс содержит эти свойства:
Это свойство преобразует все числовые входные параметры в один определенный тип MATLAB. Этот флаг полезен, когда переменные, обеспеченные в рамках Визуального кода Basic®, являются различными типами, например, Long
Целое число
, и т.д., и все переменные, переданные скомпилированному коду MATLAB, должны быть, удваивается. Значением по умолчанию для этого свойства является mwTypeDefault
, который использует правила по умолчанию в Правилах для Преобразования Данных Между.NET и MATLAB.
Это наборы свойств смещение даты для выполнения COM к MATLAB числовые преобразования даты. Значение по умолчанию этого свойства 693960, представляя различие между Date
COM тип и MATLAB числовые даты. Этот флаг позволяет существующий код MATLAB, который уже выполняет шаг числовых дат 693 960, чтобы использоваться неизменный с COM-компонентами. На даты процесса с таким кодом, набор это свойство к
0
.
Этот пример использует флаги преобразования данных, чтобы изменить выход из метода, скомпилированного от функции MATLAB, которая производит выходной вектор неизвестной длины.
function p = myprimes(n) if length(n)~=1, error('N must be a scalar'); end if n < 2, p = zeros(1,0); return, end p = 1:2:n; q = length(p); p(1) = 2; for k = 3:2:sqrt(n) if p((k+1)/2) p(((k*k+1)/2):k:q) = 0; end end p = (p(p>0));
Эта функция производит вектор-строку из всех простых чисел между 0 и n
. Примите, что эта функция включена в класс под названием myclass
это включено в компонент под названием mycomponent
с версией 1,0. Стандартная подпрограмма берет область значений Excel и Double
как входные параметры и места сгенерированные простые числа в предоставленную область значений. Функция MATLAB производит вектор-строку, несмотря на то, что вы хотите выход в формате столбца. Это также производит неизвестное количество выходных параметров, и вы не хотите обрезать любой выход. Чтобы обработать эти проблемы, установите TransposeOutput
отметьте и AutoResizeOutput
отметьте к True
. В предыдущих примерах, Visual Basic CreateObject
функция создает необходимые классы. Этот пример использует явное описание типа в aClass
переменная. Как с предыдущими примерами, эта функция принимает тот MWInitApplication
был ранее назван.
Sub GenPrimes(R As Range, n As Double) Dim aClass As mycomponent.myclass On Error GoTo Handle_Error Set aClass = New mycomponent.myclass aClass.MWFlags.ArrayFormatFlags.AutoResizeOutput = True aClass.MWFlags.ArrayFormatFlags.TransposeOutput = True Call aClass.myprimes(1, R, n) Exit Sub Handle_Error: MsgBox (Err.Description) End Sub
Это свойство преобразует даты, переданные как входные параметры вызовам метода на классах MATLAB Compiler SDK. Значением по умолчанию является mwDateFormatNumeric
. Поведения, обозначенные этим флагом, показывают в следующей таблице.
Правила преобразования для входных дат
Значение | Поведение |
---|---|
|
Преобразуйте даты в числовые значения, как обозначено правилом, перечисленным в Правилах для Преобразования Данных Между.NET и MATLAB. |
|
Преобразуйте входные даты в строки. |
Это свойство обрабатывает выходной аргумент как дату. По умолчанию числовые даты, которые являются выходными параметрами от скомпилированных функций MATLAB, передаются как Double
s, который должен быть постепенно уменьшен смещением даты COM (693960), а также принужден на даты COM. Установите этот флаг на True
преобразовывать все выходные значения типа Double
.
Это свойство является перечислением и может иметь два возможных значения: mwReplaceNaN
и mwReplaceZero
.
Чтобы обработать пустые ячейки, на которые ссылаются входные параметры как нули, установите значение к mwReplaceZero
. Обрабатывать пустые ячейки, на которые ссылаются входные параметры как NaN
s (Не Номер), устанавливает значение к mwReplaceNaN
.
По умолчанию значением является mwReplaceZero
.
Создает копию MWFlags
объект.
Аргумент | Ввод | Описание |
---|---|---|
|
|
Ссылка на неинициализированный |
'none'
Клон выделяет новый MWFlags
возразите и создает глубокую копию содержимого объекта. Вызовите эту функцию, когда отдельный объект будет требоваться вместо разделяемой копии существующей ссылки на объект.