Класс 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
, Integer
, и т.д., и все переменные, переданные скомпилированному коду 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
и создает глубокую копию содержимого объекта. Вызовите эту функцию, когда отдельный объект будет требоваться вместо разделяемой копии существующей ссылки на объект.