Evalúe las instrucciones de C++ con las funciones miembro y.MATLAB®MATLABEngine::eval
MATLABEngine::evalAsync
Estas funciones miembro son similares a la función.MATLABeval
Las funciones y no devuelven los resultados de la evaluación de la instrucción.MATLABEngine::eval
MATLABEngine::evalAsync
MATLAB
Use y cuando no necesite pasar argumentos de C++ o devolver valores a C++.MATLABEngine::eval
MATLABEngine::evalAsync
Las instrucciones que se ejecutan con estas funciones pueden tener acceso a las variables del área de trabajo.MATLAB
Estas son algunas cosas que hay que saber sobre la evaluación de las declaraciones.MATLAB
Estas funciones pasan las sentencias en como un.MATLABmatlab::engine::String
Convierta un a a utilizando el literal o la función de utilidad.std::string
matlab::engine::String
u"…"
matlab::engine::convertUTF8StringToUTF16String
Los argumentos de entrada nombrados en la cadena deben existir en el área de trabajo.MATLAB
Puede asignar los resultados de la evaluación a variables dentro de la cadena de extracto. La variable que asigne en la sentencia se crea en el espacio de trabajo base.MATLAB
no requiere inicializar las variables creadas en la sentencia.MATLAB
Puede almacenar la salida estándar de las funciones y los mensajes de error en los búferes de secuencia.MATLAB
Este código de ejemplo se usa para evaluar una serie de instrucciones.MATLABEngine::eval
MATLAB Estas afirmaciones:
Aquí está el código equivalente.MATLAB
[X, Y] = meshgrid(-2:0.2:2); Z = X .* exp(-X.^2 - Y.^2); surf(Z) print('SurfaceGraph', '-djpeg') currentFolder = pwd;
Aquí está el código de C++ para ejecutar estas instrucciones en.MATLAB
#include "MatlabDataArray.hpp" #include "MatlabEngine.hpp" #include <iostream>
void evalSurfaceGraph() { // Evaluate functions in MATLAB using namespace matlab::engine; // Start MATLAB engine synchronously std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB(); // Evaluate commands in MATLAB matlabPtr->eval(u"[X, Y] = meshgrid(-2:0.2:2);"); matlabPtr->eval(u"Z = X .* exp(-X.^2 - Y.^2);"); matlabPtr->eval(u"surf(Z)"); matlabPtr->eval(u"print('SurfaceGraph', '-djpeg')"); matlabPtr->eval(u"currentFolder = pwd;"); // Get the name of the folder containing the jpeg file matlab::data::CharArray currentFolder = matlabPtr->getVariable(u"currentFolder"); std::cout << "SurfaceGraph.jpg written to this folder: " << currentFolder.toAscii() << std::endl; }
Para obtener información sobre cómo configurar y compilar programas de motor de C++, vea.Compilar programas de motor de C++