Puede conectar el motor de C++ a las sesiones compartidas que se ejecutan en el equipo local.MATLAB® Para conectarse a una sesión compartida:MATLAB
Empiece como una sesión compartida o realice un proceso en ejecución compartido mediante la función.MATLABMATLABmatlab.engine.shareEngine
MATLAB
Busque los nombres de las sesiones compartidas mediante o.MATLABmatlab::engine::findMATLAB
matlab::engine::findMATLABAsync
Pasar un que contiene el nombre de la sesión compartida a la o función miembro.matlab::engine::String
MATLABmatlab::engine::connectMATLAB
matlab::engine::connectMATLABAsync
Estas funciones conectan el motor de C++ a la sesión compartida.
Si no especifica el nombre de una sesión compartida al llamar o, el motor utiliza la primera sesión compartida creada.MATLABmatlab::engine::connectMATLAB
matlab::engine::connectMATLABAsync
MATLAB Si no hay sesiones compartidas disponibles, el motor crea una sesión compartida y se conecta a esta sesión.MATLABMATLAB
Para obtener información sobre cómo configurar y compilar programas de motor de C++, vea.Compilar programas de motor de C++
Este código de ejemplo se conecta a la primera sesión compartida encontrada.MATLAB
#include "MatlabEngine.hpp"
void syncConnect() { using namespace matlab::engine; // Connect to shared MATLAB session std::unique_ptr<MATLABEngine> matlabPtr = connectMATLAB(); }
Este código de ejemplo se conecta a la primera sesión compartida que se encuentra asincrónicamente.MATLAB
#include "MatlabEngine.hpp"
void asyncConnect() { using namespace matlab::engine; // Find and connect to shared MATLAB session FutureResult<std::unique_ptr<MATLABEngine>> futureMATLAB = connectMATLABAsync(); ... std::unique_ptr<MATLABEngine> matlabPtr = futureMATLAB.get(); }
Puede especificar el nombre de la sesión compartida al ejecutar la función.MATLABmatlab.engine.shareEngine
MATLAB Al hacerlo, se elimina la necesidad de utilizar o encontrar el nombre.matlab::engine::findMATLAB
matlab::engine::findMATLABAsync
Por ejemplo, inicie y asigne un nombre a la sesión compartida.MATLABmyMatlabEngine
matlab -r "matlab.engine.shareEngine('myMatlabEngine')"
Este código de ejemplo se conecta a la sesión nombrada desde C++.MATLABmyMatlabEngine
Nota
Inicie la sesión con nombre antes de conectarse desde el código de C++.MATLAB
#include "MatlabEngine.hpp"
void connectToML() { using namespace matlab::engine; // Connect to named shared MATLAB session started as: // matlab -r "matlab.engine.shareEngine('myMatlabEngine')" std::unique_ptr<MATLABEngine> matlabPtr = connectMATLAB(u"myMatlabEngine"); }
Para conectarse a una sesión compartida con nombre, utilice o para buscar los nombres de todas las sesiones compartidas con nombre disponibles.MATLABmatlab::engine::findMATLAB
matlab::engine::findMATLABAsync
MATLAB
Este código de ejemplo intenta encontrar una sesión compartida con nombre y se conecta a ella si se encuentra la sesión.MATLABmyMatlabEngine
void findNConnect() { using namespace matlab::engine; // Find and connect to shared MATLAB session std::unique_ptr<MATLABEngine> matlabPtr; std::vector<String> names = findMATLAB(); std::vector<String>::iterator it; it = std::find(names.begin(), names.end(), u"myMatlabEngine"); if (it != names.end()) { matlabPtr = connectMATLAB(*it); } // Determine if engine connected if (matlabPtr){ matlab::data::ArrayFactory factory; matlab::data::CharArray arg = factory.createCharArray("-release"); matlab::data::CharArray version = matlabPtr->feval(u"version", arg); std::cout << "Connected to: " << version.toAscii() << std::endl; } else { std::cout << "myMatlabEngine not found" << std::endl; } }
matlab.engine.shareEngine
| matlab::engine::connectMATLAB
| matlab::engine::connectMATLABAsync
| matlab::engine::findMATLAB
| matlab::engine::findMATLABAsync