Вызовите функцию 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 функция в 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/mex
Смотрите эти примеры в :matlabroot/extern/examples/refbook
Смотрите эти примеры в :matlabroot/extern/examples/mx
MATLAB выделяет динамическую память, чтобы сохранить массивы в plhs для mexCallMATLAB. MATLAB автоматически освобождает динамическую память, когда вы выходите из MEX-функции. Однако, если пространство "кучи" в большом почете, вызвать mxDestroyArray когда вы закончены с массивами в plhs.
mexFunction | mexCallMATLABWithTrap | mexEvalString | mxDestroyArray