Класс MWFlags

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

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

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

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

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

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

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

mwArrayFormatAsIs

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

mwArrayFormatCell

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

mwArrayFormatMatrix

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

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

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

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

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

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

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

mwArrayFormatAsIs

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

mwArrayFormatMatrix

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

mwArrayFormatCell

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

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

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

Свойство AutoResizeOutput как булевская переменная

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

Свойство TransposeOutput как булевская переменная

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

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

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

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

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

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.

mwDateFormatString

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

PropertyOutputAsDate как булевская переменная

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

ReplaceMissing Как mwReplaceMissingData

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

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

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

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

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

Параметры

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

ppFlags

MWFlags

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

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

'none'

Комментарии

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