Вызов функции MATLAB, определяемой пользователем функции или функции MEX
#include "mex.h" int mexCallMATLAB(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[], const char *functionName);
Примечание
Сведения о записи функций MEX с использованием современных функций C++ и интерфейса MATLAB Data API см. в разделе Приложения C++ MEX.
Звонить mexCallMATLAB для вызова внутренних цифровых функций MATLAB ®, операторов MATLAB, пользовательских функций или других функций MEX.
Оба mexCallMATLAB и mexEvalString выполните команды MATLAB. Использовать mexCallMATLAB для возврата результатов (аргументы левой стороны) обратно в функцию MEX. mexEvalString функция не возвращает значения функции MEX.
Если functionName обнаруживает ошибку, MATLAB завершает функцию MEX и возвращает управление в подсказку MATLAB. Для перехвата ошибок используйте mexCallMATLABWithTrap функция.
Избегайте использования mexCallMATLAB функция в S-функциях Simulink ®. В этом случае не храните полученные данныеplhs
mxArray указатели в любом состоянии блока S-функции, которое сохраняется после завершения функции MEX. Выходы mexCallMATLAB имеют временную область действия и автоматически уничтожаются в конце вызова функции MEX.
Можно создать объект типа mxUNKNOWN_CLASS использование mexCallMATLAB. Например, эта функция возвращает две переменные, но только присваивает одной из них значение.
function [a,b] = foo(c) a = 2*c;
Если вы затем звоните foo использование mexCallMATLAB, неназначенная выходная переменная теперь имеет тип mxUNKNOWN_CLASS.
См. эти примеры в разделе :matlabroot/extern/examples/mex
См. эти примеры в разделе :matlabroot/extern/examples/refbook
См. эти примеры в разделе :matlabroot/extern/examples/mx
MATLAB выделяет динамическую память для хранения массивов в plhs для mexCallMATLAB. MATLAB автоматически освобождает динамическую память при выходе из функции MEX. Однако, если пространство кучи находится на уровне премиум, позвоните mxDestroyArray по завершении работы с массивами в plhs.
mexCallMATLABWithTrap | mexEvalString | mexFunction | mxDestroyArray