Оцените функцию 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