Main Content

Pruebe su entorno de compilación

Para probar la instalación y el entorno, guarde el siguiente código de C++ en un archivo denominado (puede usar cualquier nombre).testFeval.cpp Para compilar la aplicación del motor, utilice estos comandos desde la ventana de comandos:

mex -setup -client engine C++

Seleccione el compilador instalado que desea usar cuando se lo solicite el script de instalación.mex A continuación, llame al comando para compilar el programa.mex Asegúrese de que la API de motor para C++ es compatible con el compilador que seleccione.MATLAB® Para obtener una lista actualizada de los compiladores admitidos, consulte el sitio Web.Los compiladores compatibles y compatibles

mex -v -client engine testFeval.cpp

El comando guarda el archivo ejecutable en la misma carpeta.mex

#include "MatlabDataArray.hpp" #include "MatlabEngine.hpp" #include <iostream> void callSQRT() {      using namespace matlab::engine;      // Start MATLAB engine synchronously     std::unique_ptr<MATLABEngine> matlabPtr = startMATLAB();      //Create MATLAB data array factory     matlab::data::ArrayFactory factory;      // Define a four-element typed array     matlab::data::TypedArray<double> const argArray =          factory.createArray({ 1,4 }, { -2.0, 2.0, 6.0, 8.0 });      // Call MATLAB sqrt function on the data array     matlab::data::Array const results = matlabPtr->feval(u"sqrt", argArray);      // Display results     for (int i = 0; i < results.getNumberOfElements(); i++) {         double a = argArray[i];         std::complex<double> v = results[i];         double realPart = v.real();         double imgPart = v.imag();         std::cout << "Square root of " << a << " is " <<              realPart << " + " << imgPart << "i" << std::endl;     } }  int main() {     callSQRT();     return 0; }

Aquí está la salida de este programa. En este caso, devuelve una matriz compleja porque uno de los números de la matriz de datos es negativo.MATLAB

Square root of -2 is 0 + 1.41421i Square root of 2 is 1.41421 + 0i Square root of 6 is 2.44949 + 0i Square root of 8 is 2.82843 + 0i

Consulte también

|

Temas relacionados