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, передаете в 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
Распаковывает массив Variants в отдельный Variant аргументы. Эта функция обеспечивает противоположную функциональность MWPack и обычно используется, чтобы обработать varargout ячейка в отдельный Variants.
| Аргумент | Ввод | Описание |
|---|---|---|
|
|
|
Входной массив |
|
|
|
Дополнительное начальное значение индекса (основанное на нуле) в массиве, чтобы начать обрабатывать. Значение по умолчанию = |
|
|
|
Дополнительный автоизменяют размер флага. Если этим флагом является |
|
|
|
Дополнительный список |
'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, передаются как Doubles, который должен быть постепенно уменьшен смещением даты 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