Класс MWFlags

MWFlags класс содержит набор форматирования массивов и флагов преобразования данных (См. Правила для Преобразования Данных Между.NET и MATLAB (MATLAB Compiler SDK) для получения дополнительной информации о преобразовании между MATLAB® и типы Автоматизации COM.) Все COM-компоненты MATLAB Compiler SDK™ содержат ссылку на MWFlags объект, который может изменить правила преобразования данных на уровне объектов. Этот класс содержит эти свойства и метод:

Свойство ArrayFormatFlags как MWArrayFormatFlags

ArrayFormatFlags свойство управляет форматированием массивов (как матрица или массив ячеек) и приложение этих правил к вложенным массивам. MWArrayFormatFlags класс является noncreatable классом, к которому получают доступ через MWFlags экземпляр класса. Этот класс содержит шесть свойств:

Свойство InputArrayFormat Как mwArrayFormat

Это свойство типа mwArrayFormat управляет форматированием массивов, переданных как входные параметры методам класса MATLAB Compiler SDK. Значением по умолчанию является mwArrayFormatMatrix. Поведения, обозначенные этим флагом, перечислены в следующей таблице.

Правила форматирования массивов для входных массивов

ЗначениеПоведение

mwArrayFormatAsIs

Преобразует массивы согласно правилам преобразования по умолчанию, перечисленным в Правилах для Преобразования Данных Между.NET и MATLAB (MATLAB Compiler SDK).

mwArrayFormatCell

Принуждает все массивы в массивы ячеек. Аргументы скалярного или числового массива входа преобразованы в массивы ячеек с каждой ячейкой, содержащей скалярное значение для соответствующего индекса.

mwArrayFormatMatrix

Принуждает все массивы в матрицы. Когда с входным параметром сталкиваются, который массив Variants (поведение по умолчанию должно преобразовать его в массив ячеек), преобразователь данных преобразует этот массив в матрицу если каждый Variant один оцененный, и все элементы являются гомогенными и числового типа. Если это преобразование не возможно, создает массив ячеек.

Свойство InputArrayIndFlag как долго

Это свойство управляет уровнем, на котором можно применить правило, установленное InputArrayFormat свойство для вложенных массивов (массив Variants передается, и каждым элементом массива является сам массив). Не необходимо изменить этот флаг для varargin параметры. Код преобразования данных автоматически постепенно увеличивает значение этого флага 1 для varargin ячейки, таким образом применяя InputArrayFormat отметьте к каждой ячейке varargin параметр. Значение по умолчанию 0.

Свойство OutputArrayFormat Как mwArrayFormat

Это свойство типа mwArrayFormat управляет форматированием массивов, переданных как выходные параметры методам класса. Значением по умолчанию является mwArrayFormatAsIs. Поведения, обозначенные этим флагом, перечислены в следующей таблице.

Правила форматирования массивов для выходных массивов

ЗначениеПоведение

mwArrayFormatAsIs

Преобразует массивы согласно правилам преобразования по умолчанию, перечисленным в Правилах для Преобразования Данных Между.NET и MATLAB (MATLAB Compiler SDK).

mwArrayFormatMatrix

Принуждает все массивы в матрицы. Когда с выходным аргументом массива ячеек сталкиваются (поведение по умолчанию преобразует его в массив Variants), преобразователь данных преобразует этот массив в Variant это содержит простой числовой массив, если каждая ячейка одна оцененный, и все элементы являются гомогенными и числового типа. Если это преобразование не возможно, массив Variants создается.

mwArrayFormatCell

Принуждает все выходные массивы в массивы Variants. Аргументы скалярного или числового массива выхода преобразованы в массивы Variants, каждый Variant содержа скалярное значение для соответствующего индекса.

Свойство OutputArrayIndFlag как долго

Это свойство похоже на InputArrayIndFalg свойство, когда это управляет уровнем, на котором можно применить правило, установленное OutputArrayFormat свойство для вложенных массивов. Как с входным случаем, этот флаг автоматически постепенно увеличивается 1 для varargout параметр. Значением по умолчанию этого флага является 0.

Свойство AutoResizeOutput как Boolean

Этот флаг применяется к Excel® области значений только. Когда целевой выход от вызова метода является областью значений ячеек в рабочем листе Excel, и размер выходного массива и форма не известны во время вызова, устанавливая этот флаг на True дает коду преобразования данных команду изменять размер каждой области значений Excel, чтобы соответствовать выходному массиву. Изменение размеров применяется относительно левого верхнего угла каждой предоставленной области значений. Значением по умолчанию для этого флага является False.

Свойство TransposeOutput как Boolean

Установка этого флага к True транспонирует выходные аргументы. Этот флаг полезен при обработке выходного параметра от вызова метода на COM-компоненте, где функция MATLAB возвращает выходные параметры как векторы-строки, и вы желаете поместить данные в столбцы. Значением по умолчанию для этого флага является False.

Свойство DataConversionFlags как MWDataConversionFlags

DataConversionFlags свойство управляет, как входные переменные обрабатываются, когда приведение типа необходимо. MWDataConversionFlags класс является noncreatable классом, к которому получают доступ через MWFlags экземпляр класса. Этот класс содержит эти свойства:

Свойство CoerceNumericToType Как mwDataType

Это свойство преобразует все числовые входные параметры в один определенный тип MATLAB. Этот флаг полезен, когда переменные обеспечили в Visual Basic® код является различными типами, например, LongЦелое число, и т.д., и все переменные, переданные скомпилированному коду MATLAB, должны быть, удваивается. Значением по умолчанию для этого свойства является mwTypeDefault, который использует правила по умолчанию в Правилах для Преобразования Данных Между.NET и MATLAB (MATLAB Compiler SDK).

PropertyDateBias как долго

Это наборы свойств смещение даты для выполнения 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

Свойство InputDateFormat Как mwDateFormat

Это свойство преобразует даты, переданные как входные параметры вызовам метода на классах MATLAB Compiler SDK. Значением по умолчанию является mwDateFormatNumeric. Поведения, обозначенные этим флагом, показывают в следующей таблице.

Правила преобразования для входных дат

ЗначениеПоведение

mwDateFormatNumeric

Преобразуйте даты в числовые значения, как обозначено правилом, перечисленным в Правилах для Преобразования Данных Между.NET и MATLAB (MATLAB Compiler SDK).

mwDateFormatString

Преобразуйте входные даты в строки.

PropertyOutputAsDate как Boolean

Это свойство обрабатывает выходной аргумент как дату. По умолчанию числовые даты, которые являются выходными параметрами от скомпилированных функций MATLAB, передаются как Doubles, который должен быть постепенно уменьшен смещением даты COM (693960), а также принужден на даты COM. Установите этот флаг на True преобразовывать все выходные значения типа Double.

ReplaceMissing Как mwReplaceMissingData

Это свойство является перечислением и может иметь два возможных значения: mwReplaceNaN и mwReplaceZero.

Чтобы обработать пустые ячейки, на которые ссылаются входные параметры как нули, установите значение к mwReplaceZero. Обрабатывать пустые ячейки, на которые ссылаются входные параметры как NaNs (Не Номер), устанавливает значение к mwReplaceNaN.

По умолчанию значением является mwReplaceZero.

Клон Sub (ppFlags как MWFlags)

Создает копию MWFlags объект.

Параметры

АргументВводОписание

ppFlags

MWFlags

Ссылка на неинициализированный MWFlags объект, который получает копию

Возвращаемое значение

'none'

Комментарии

Клон выделяет новый MWFlags возразите и создает глубокую копию содержимого объекта. Вызовите эту функцию, когда отдельный объект будет требоваться вместо разделяемой копии существующей ссылки на объект.