Класс MWFlags

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

Свойство ArrayFormatFlags As MWArrayFormatFlags

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

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

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

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

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

mwArrayFormatAsIs

Преобразует массивы в соответствии с правилами преобразования по умолчанию, перечисленными в Правилах преобразования данных между .NET и MATLAB.

mwArrayFormatCell

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

mwArrayFormatMatrix

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

Свойство InputArrayIndFlag As Long

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

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

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

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

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

mwArrayFormatAsIs

Преобразует массивы в соответствии с правилами преобразования по умолчанию, перечисленными в Правилах преобразования данных между .NET и MATLAB.

mwArrayFormatMatrix

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

mwArrayFormatCell

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

Свойство OutputArrayIndFlag As Long

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

Свойство AutoResizeOutput как логическое

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

Свойство TransposeOutput как логическое

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

Свойство DataConversionFlags As MWDataConversionFlags

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

Свойство Coerce Numeric To Type Как mw Data Type

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

PropertyDateBias как длинный

Это свойство устанавливает смещение даты для выполнения числовых преобразований COM в MATLAB. Значение по умолчанию этого свойства 693960, представляющее различие между COM- Date введите и числовые даты MATLAB. Этот флаг позволяет использовать существующий код MATLAB, который уже выполняет шаг числовых дат на 693960, без изменений с компонентами. Чтобы обработать даты с таким кодом, установите это свойство на 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.

mwDateFormatString

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

PropertyOutputAsDate как логический

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

ReplaceMissing As mwReplaceMissingData

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

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

По умолчанию значение mwReplaceZero.

Подклон (ppFlags As MWFlags

)

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

Параметры

АргументНапечататьОписание

ppFlags

MWFlags

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

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

Ничего

Замечания

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