Класс MWUtil
содержит набор статических служебных методов, используемых в обработке матриц и инициализации приложения. Этот класс реализован внутренне как одиночный элемент (только один глобальный экземпляр этого класса на экземпляр Microsoft® Excel®). Является самым эффективным объявить одну переменную этого типа в глобальной области видимости в каждом модуле, который использует его. Методы MWUtil
:
Прототипы функции используют Визуальный синтаксис Basic®.
Инициализирует библиотеку с текущим экземпляром Microsoft Excel.
Аргумент | Ввод | Описание |
---|---|---|
|
|
Действительная ссылка к текущему приложению Excel |
'none'.
Эта функция должна быть вызвана однажды для каждого сеанса Excel, который использует COM-компоненты, созданные MATLAB® Compiler™. Ошибка сгенерирована, если вызов метода сделан к членскому классу какого-либо COM-компонента MATLAB Compiler SDK™, и библиотека не была инициализирована.
Эта выборка Visual Basic инициализирует библиотеку MWComUtil
с текущим экземпляром Excel. Глобальная переменная типа, Object
по имени MCLUtil
содержит экземпляр класса MWUtil
и другую глобальную переменную типа Boolean
по имени bModuleInitialized
, хранит состояние процесса инициализации. Частная стандартная подпрограмма InitModule()
создает экземпляр класса MWComUtil
и вызывает метод MWInitApplication
с аргументом Application
. Если эта функция успешно выполняется, весь последующий выход вызовов, не воссоздавая объект.
Dim MCLUtil As Object Dim bModuleInitialized As Boolean Private Sub InitModule() If Not bModuleInitialized Then On Error GoTo Handle_Error If MCLUtil Is Nothing Then Set MCLUtil = CreateObject("MWComUtil.MWUtil") End If Call MCLUtil.MWInitApplication(Application) bModuleInitialized = True Exit Sub Handle_Error: bModuleInitialized = False End If End Sub
Если вы разрабатываете одновременно с несколькими версиями MATLAB и MWComUtil.dll
, например, с помощью этого синтаксиса:
Set MCLUtil = CreateObject("MWComUtil.MWUtil")
MWUtil
, например:Set MCLUtil = CreateObject("MWComUtil.MWUtilx.x")
x.x
является определенным номером версии.Запустите MATLAB Runtime с опций MATLAB Runtime. Подобно mclInitializeApplication
.
Аргумент | Ввод | Описание |
---|---|---|
|
|
Действительная ссылка только, когда названо из приложения Excel Non COM-клиенты Excel передает в |
'none'.
Вызовите эту функцию, чтобы передать в опциях MATLAB Runtime (nojvm
, logfile
, и т.д.). Вызовите эту функцию однажды для каждого процесса.
Эта выборка Visual Basic инициализирует библиотеку MWComUtil
с текущим экземпляром Excel. Глобальная переменная типа, Object
по имени MCLUtil
содержит экземпляр класса MWUtil
и другую глобальную переменную типа Boolean
по имени bModuleInitialized
, хранит состояние процесса инициализации. Частная стандартная подпрограмма InitModule()
создает экземпляр класса MWComUtil
и вызывает метод MWInitApplicationWithMCROptions
с аргументом Application
и массива строк, который содержит опции. Если эта функция успешно выполняется, весь последующий выход вызовов, не воссоздавая объект. Когда эта функция успешно выполняется, MATLAB Runtime запускает без JVM™ и файла журнала под названием logfile.txt
.
Dim MCLUtil As Object Dim bModuleInitialized As Boolean Private Sub InitModule() If Not bModuleInitialized Then On Error GoTo Handle_Error If MCLUtil Is Nothing Then Set MCLUtil = CreateObject("MWComUtil.MWUtil") End If Dim mcrOptions(1 To 3) as String mcrOptions(1) = "-nojvm" mcrOptions(2) = "-logfile" mcrOptions(3) = "logfile.txt" Call MCLUtil.MWInitApplicationWithMCROptions(Application, mcrOptions) bModuleInitialized = True Exit Sub Handle_Error: bModuleInitialized = False End If End Sub
Если вы не используете Excel, передаете в Empty
вместо Application
к MWInitApplicationWithMCROptions
.
Возвращает true
, если MATLAB Runtime запускается с JVM; в противном случае возвращает false
.
'none'.
Boolean
Возвращает true
, если MATLAB Runtime инициализируется; в противном случае возвращает true
'none'.
Boolean
Упаковывает список переменных длин аргументов Variant
в один массив Variant
. Эта функция обычно используется для создания ячейки varargin
из списка отдельных входных параметров. Каждый вход в списке добавляется к массиву, только если это не является пустым или недостающим. (В Visual Basic недостающий параметр обозначается типом Variant
vbError
со значением &H80020004
.)
Аргумент | Ввод | Описание |
---|---|---|
|
|
Получает полученный массив |
[Var0], [Var1], ... |
|
Дополнительный список |
'none'.
Эта функция всегда освобождает содержимое pVarArg
прежде, чем обработать список.
Этот пример использует MWPack
в функции формул, чтобы произвести клетку varargin
, чтобы передать как входной параметр методу, скомпилированному от функции MATLAB с подписью
function y = mysum(varargin) y = sum([varargin{:}]);
Функция возвращает сумму элементов в varargin
. Примите, что эта функция является методом класса под названием myclass
, который включен в компонент под названием mycomponent
с версией 1,0. Функция Visual Basic позволяет до 10 входных параметров и возвращает результат y
. Если ошибка происходит, функция возвращает сообщение об ошибке. Эта функция принимает, что MWInitApplication
был ранее назван.
Function mysum(Optional V0 As Variant, _ Optional V1 As Variant, _ Optional V2 As Variant, _ Optional V3 As Variant, _ Optional V4 As Variant, _ Optional V5 As Variant, _ Optional V6 As Variant, _ Optional V7 As Variant, _ Optional V8 As Variant, _ Optional V9 As Variant) As Variant Dim y As Variant Dim varargin As Variant Dim aClass As Object Dim aUtil As Object On Error Goto Handle_Error Set aClass = CreateObject("mycomponent.myclass.1_0") Set aUtil = CreateObject("MWComUtil.MWUtil") Call aUtil.MWPack(varargin,V0,V1,V2,V3,V4,V5,V6,V7,V8,V9) Call aClass.mysum(1, y, varargin) mysum = y Exit Function Handle_Error: mysum = Err.Description End Function
Распаковывает массив Variant
s в отдельные аргументы Variant
. Эта функция обеспечивает противоположную функциональность MWPack
и обычно используется, чтобы обработать ячейку varargout
в отдельный Variant
s.
Аргумент | Ввод | Описание |
---|---|---|
|
|
Входной массив |
|
|
Дополнительное начальное значение индекса (основанное на нуле) в массиве, чтобы начать обрабатывать. Значение по умолчанию = |
|
|
Дополнительный автоизменяют размер флага. Если этим флагом является |
|
|
Дополнительный список |
'none'.
Эта функция может обработать массив Variant
в одном одном вызове или через множественные вызовы с помощью параметра nStartAt
.
Этот пример использует MWUnpack
, чтобы обработать ячейку varargout
в несколько областей значений Excel при автоизменении размеров каждой области значений. Параметр varargout
предоставляется из метода, который был скомпилирован от функции MATLAB.
function varargout = randvectors for i=1:nargout varargout{i} = rand(i,1); end
Эта функция производит последовательность nargout
случайные вектор-столбцы с длиной ith вектора, равного i. Примите, что эта функция включена в класс под названием myclass
, который включен в компонент под названием mycomponent
с версией 1,0. Стандартная подпрограмма Visual Basic не берет аргументов и помещает результаты в столбцы Excel, запускающиеся в A1, B1, C1 и D1. Если ошибка происходит, окно сообщения отображает текст ошибки. Эта функция принимает, что MWInitApplication
был ранее назван.
Sub GenVectors() Dim aClass As Object Dim aUtil As Object Dim v As Variant Dim R1 As Range Dim R2 As Range Dim R3 As Range Dim R4 As Range On Error GoTo Handle_Error Set aClass = CreateObject("mycomponent.myclass.1_0") Set aUtil = CreateObject("MWComUtil.MWUtil") Set R1 = Range("A1") Set R2 = Range("B1") Set R3 = Range("C1") Set R4 = Range("D1") Call aClass.randvectors(4, v) Call aUtil.MWUnpack(v,0,True,R1,R2,R3,R4) Exit Sub Handle_Error: MsgBox (Err.Description) End Sub
Преобразовывает выходные даты от MATLAB до дат Variant
.
Аргумент | Ввод | Описание |
---|---|---|
|
|
|
'none'.
MATLAB обрабатывает даты как числа с плавающей запятой с двойной точностью с 0,0 представлениями 0/0/00 0:00:00. По умолчанию числовые даты, которые являются выходными параметрами от скомпилированных функций MATLAB, передаются как Double
s, который должен быть постепенно уменьшен смещением даты COM, а также принужден на даты COM. Метод MWDate2VariantDate
выполняет это преобразование и дополнительно преобразовывает даты в форме вектора символов к типам даты COM.
Этот пример использует MWDate2VariantDate
, чтобы обработать числовые даты, возвращенные в метод, скомпилированный от следующей функции MATLAB.
function x = getdates(n, inc) y = now; for i=1:n x(i,1) = y + (i-1)*inc; end
Эта функция производит n
- вектор-столбец длины числовых значений, представляющих даты, начинающие с текущей даты и время с каждым элементом, постепенно увеличенным днями inc
. Примите, что эта функция включена в класс под названием myclass
, который включен в компонент под названием mycomponent
с версией 1,0. Стандартная подпрограмма берет область значений Excel и Double
как входные параметры и помещает сгенерированные даты в предоставленную область значений. Если ошибка происходит, окно сообщения отображает текст ошибки. Эта функция принимает, что MWInitApplication
был ранее назван.
Sub GenDates(R As Range, inc As Double) Dim aClass As Object Dim aUtil As Object On Error GoTo Handle_Error Set aClass = CreateObject("mycomponent.myclass.1_0") Set aUtil = CreateObject("MWComUtil.MWUtil") Call aClass.getdates(1, R, R.Rows.Count, inc) Call aUtil.MWDate2VariantDate(R) Exit Sub Handle_Error: MsgBox (Err.Description) End Sub