Main Content

Ejecutar sentencias de la función MEXMATLAB

Las funciones MEX pueden ejecutar sentencias en el espacio de trabajo de la función de llamada.MATLAB® La evaluación de sentencias en el espacio de trabajo de la función de llamada permite a las funciones MEX crear o modificar variables en el espacio de trabajo en el que se ejecuta. Las funciones MEX también pueden modificar el entorno, por ejemplo cambiando la carpeta actual.

Las instrucciones pueden tener acceso a las variables que están en el ámbito en el área de trabajo de función de llamada.MATLAB Si se llama a la función MEX desde el área de trabajo base, las instrucciones se evalúan en el contexto de ese área de trabajo.MATLAB

Para ejecutar sentencias de una función MEX, utilice la función.MATLABmatlab::engine::MATLABEngine::eval Se usa cuando no es necesario pasar argumentos a una función o devolver argumentos a la función MEX.evalMATLAB

Pase la declaración a como un.MATLABevalstd::u16string Utilice la codificación de cadena literal UTF-16 o la función de utilidad para convertir un a.u"..."matlab::engine::convertUTF8StringToUTF16Stringstd::stringstd::u16string Las funciones y los argumentos de entrada nombrados en la cadena deben existir en el área de trabajo del llamador.

Este fragmento de código muestra cómo usar para ejecutar instrucciones.evalMATLAB Estas instrucciones agregan la carpeta actual a la ruta de acceso y, a continuación, cambian la carpeta de trabajo a la asignada a la unidad en un sistema Windows.MATLABMATLABH Observe el carácter de escape ("\") delante del carácter de barra diagonal inversa.

std::shared_ptr<matlab::engine::MATLABEngine> matlabPtr = getEngine(); matlabPtr->eval(u"currentFolder = pwd;"); matlabPtr->eval(u"addpath(currentFolder);"); matlabPtr->eval(u"cd('H:\\')");

Aquí está el código equivalente.MATLAB

currentFolder = pwd; addpath(currentFolder); cd('H:\')

Consulte también

| | |

Temas relacionados