Main Content

Conectar C++ a la sesión en ejecuciónMATLAB

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

Si no especifica el nombre de una sesión compartida al llamar o, el motor utiliza la primera sesión compartida creada.MATLABmatlab::engine::connectMATLABmatlab::engine::connectMATLABAsyncMATLAB 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++

Conéctese a SharedMATLAB

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(); }

Conéctese a compartido asincrónicamenteMATLAB

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(); }

Especifique el nombre de la sesión compartida

Puede especificar el nombre de la sesión compartida al ejecutar la función.MATLABmatlab.engine.shareEngineMATLAB Al hacerlo, se elimina la necesidad de utilizar o encontrar el nombre.matlab::engine::findMATLABmatlab::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"); }

Buscar y conectarse a sesión compartida con nombre

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::findMATLABmatlab::engine::findMATLABAsyncMATLAB

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;     } }

Consulte también

| | | |

Temas relacionados