Feval (COM)

Оцените функцию MATLAB в Сервере автоматизации

Резюме

Сигнатура метода IDL

HRESULT Feval([in] BSTR functionname, [in] long nargout, 
[out] VARIANT* result, [in, optional] VARIANT arg1, arg2, ...)

Microsoft Visual Basic Client

Feval(String functionname, long numout, 
arg1, arg2, ...) As Object

Клиент MATLAB

закончитесь = 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. Следующая таблица показывает способы передать аргумент.

Передача механизма

Описание

Передайте само значение

Чтобы передать любое числовое или символьное значение, задайте значение в списке аргументов 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 не повторно присваивает серверную переменную.

Примеры Visual Basic.NET

Передача аргументов

Этот пример показывает, как передать аргументы с помощью 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

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.

Представлено до R2006a

Была ли эта тема полезной?