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
(MATLAB Compiler SDK).
Аргумент | Ввод | Описание |
---|---|---|
|
|
Действительная ссылка только, когда названо из приложения 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, передаете в Nothing
вместо Application
к MWInitApplicationWithMCROptions
.
Возвращает true
если MATLAB Runtime запускается с JVM; в противном случае возвращает false
.
'none'.
Boolean
Возвращает true
если MATLAB Runtime инициализируется; в противном случае возвращает false
'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
случайные вектор-столбцы, с длиной i-ого вектора равняются 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