mexCallMATLAB (Fortran)

Вызовите функцию MATLAB, пользовательскую функцию или файл MEX

Синтаксис языка ФОРТРАН

#include "fintrf.h"
integer*4 mexCallMATLAB(nlhs, plhs, nrhs, prhs, functionName)
integer*4 nlhs, nrhs
mwPointer plhs(*), prhs(*)
character*(*) functionName

Аргументы

nlhs

Количество выходных аргументов. Должно быть меньше или равно 50.

plhs

Массив указателей на выходные аргументы

Внимание

The plhs аргумент для mexCallMATLAB не то же самое что и plhs для mexFunction. Не уничтожайте mxArray возвращается в plhs для mexFunction.

nrhs

Количество входных параметров. Должно быть меньше или равно 50.

prhs

Массив указателей на входные параметры

functionName

Символьная строка, содержащая имя MATLAB® встроенная функция, оператор, пользовательская функция или MEX-функция для вызова.

Если functionName является оператором, поместите оператор в пару одинарных кавычек, например '+'.

Возвраты

0 если успешно, и ненулевое значение, если неудачно.

Описание

Звонить mexCallMATLAB для вызова внутренних числовых функций MATLAB, операторов MATLAB, пользовательских функций или других файлов MEX. Оба mexCallMATLAB и mexEvalString выполните команды MATLAB. Использовать mexCallMATLAB для возврата результатов (аргументы с левой стороны) обратно в MEX-функцию. mexEvalString функция не возвращает значения в MEX-функцию.

Полное описание входных и выходных аргументов передано в functionName, см. mexFunction.

Обработка ошибок

Если functionName обнаруживает ошибку, MATLAB завершает работу файла MEX и возвращает управление в подсказку MATLAB. Чтобы захватить ошибки, используйте mexCallMATLABWithTrap функция.

Ограничения

  • Избегайте использования mexCallMATLAB функция в Simulink® S-функции. Если это так, не храните результат plhs mxArray указатели в любом состоянии блока s-function, которое сохраняется после завершения MEX-функции. Выходы mexCallMATLAB иметь временные возможности и автоматически уничтожаться в конце вызова MEX-функции.

  • Возможно сгенерировать объект типа mxUNKNOWN_CLASS использование mexCallMATLAB. Например, эта функция возвращает две переменные, но только присваивает одной из них значение.

    function [a,b] = foo(c)
    a = 2*c;

    Если вы тогда звоните foo использование mexCallMATLABтеперь тип неназначенной выходной переменной mxUNKNOWN_CLASS.

Примеры

См. эти примеры в matlabroot/ extern/examples/refbook:

См. эти примеры в matlabroot/ extern/examples/mx:

Совет

  • MATLAB выделяет динамическую память для хранения массивов в plhs для mexCallMATLAB. MATLAB автоматически отменяет выделение динамической памяти при выходе из файла MEX. Однако, если пространство в куче находится в премиуме, вызовите mxDestroyArray когда вы закончите с массивами в plhs.

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