Оцените функцию MATLAB в Сервере автоматизации
HRESULT Feval([in] BSTR functionname, [in] long nargout, [out] VARIANT* result, [in, optional] VARIANT arg1, arg2, ...)
Feval(String functionname, long numout, arg1, arg2, ...) As Object
закончитесь = Feval (h, 'functionname', numout, arg1, arg2...)
result = Feval(h,'functionname',numout,arg1,arg2,...)
выполняет функцию MATLAB®, заданную functionname
в Сервере автоматизации, присоединенном, чтобы обработать h
. Имя функции является чувствительным к регистру.
Функции COM доступны в системах Microsoft® Windows® только.
Укажите на количество выходных параметров, возвращенных функцией в 1
-by-1
массив double
, numout
. Сервер возвращает вывод в функцию в массиве ячеек, result
.
Можно задать целых 32 входных параметра, которые будут переданы функции. Эти аргументы следуют за numout
в списке аргументов Feval
. Следующая таблица показывает способы передать аргумент.
Передача механизма | Описание |
---|---|
Передайте само значение | Чтобы передать любое числовое или символьное значение, задайте значение в списке аргументов a = Feval(h,'sin',1,-pi:0.01:pi); |
Передайте клиентскую переменную | Чтобы передать аргумент, присвоенный переменной в клиенте, задайте одно только имя переменной: x = -pi:0.01:pi;
a = Feval(h,'sin',1,x); |
Сошлитесь на серверную переменную | Чтобы сослаться на переменную, заданную в сервере, укажите, что имя переменной, сопровождаемое, равняется ( PutWorkspaceData(h,'x','base',-pi:0.01:pi); a = Feval(h,'sin',1,'x='); MATLAB не повторно присваивает серверную переменную. |
Этот пример показывает, как передать аргументы с помощью Feval
, чтобы выполнить команды MATLAB на Сервере автоматизации MATLAB от Визуального клиента Basic®.NET. Чтобы запустить примеры в продуктах, которые выполняют код VBA, смотрите Советы.
Передайте две строки функции MATLAB strcat
на сервере:
Dim Matlab As Object Dim out As Object out = Nothing Matlab = CreateObject("matlab.application") Matlab.Feval("strcat",1,out,"hello"," world")
Задайте clistr
локально и передайте эту переменную:
Dim clistr As String clistr = " world" Matlab.Feval("strcat",1,out,"hello",clistr)
Передайте имя переменной, заданной на сервере:
Matlab.PutCharArray("srvstr","base"," world") Matlab.Feval("strcat",1,out,"hello","srvstr=")
Feval
возвращает данные в выполненную функцию в массиве ячеек. Массив ячеек ссорится для каждого возвращаемого значения. Вы управляете количеством возвращаемых значений с помощью аргумента numout
.
Dim Matlab As Object Dim out As Object Matlab = CreateObject("matlab.application") Matlab.Feval("fileparts",3,out,"d:\work\ConsoleApp.cpp")
Чтобы отобразить вывод от Feval
в клиентском окне, присвойте возвращаемое значение.
Чтобы запустить примеры в продуктах Microsoft Office, которые выполняют код VBA, замените оператор:
MatLab = CreateObject("matlab.application")
с:
Set MatLab = CreateObject("matlab.application")
Если вам нужно больше информации, то обратитесь к своей документации по продукту VBA.
Выполнение
| GetCharArray
| GetFullMatrix
| PutCharArray
| PutFullMatrix