Matlab - Matlab-Builder

 
Vista:

Matlab-Builder

Publicado por Eloy (1 intervención) el 04/06/2004 12:47:11
Hola, que tal?queria preguntaros si sabeis como conectarme desde Builder 6.0 a Matlab y posteriormente volver a Builder con unos resultados, mas o menos se que tengo que hacer pero si disponeis de codigo o pseudocodigo os lo agradeceria,un saludo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Conexión entre Borland C++ Builder 6.0 y Matlab

Publicado por Alejandro (145 intervenciones) el 05/10/2023 19:14:01
Hola Eloy. Entiendo que quieres conectar Borland C++ Builder 6.0 con Matlab y luego retornar los resultados a Builder. Para lograr esto, puedes utilizar el mecanismo de conexión a través de la interfaz de Matlab conocida como "MATLAB Engine API for C++". Aquí te proporcionaré un esbozo básico:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Incluir las cabeceras necesarias
#include <engine.h>
#include <matrix.h>
 
int main() {
    // Iniciar el motor de Matlab
    Engine *ep;
    if (!(ep = engOpen("\0"))) {
        fprintf(stderr, "\nNo se pudo iniciar el motor de Matlab\n");
        return EXIT_FAILURE;
    }
 
    // Crear y enviar datos desde Builder a Matlab
    double datosEntrada[] = {1.0, 2.0, 3.0, 4.0};
    mxArray *mxEntrada = mxCreateDoubleMatrix(1, 4, mxREAL);
    memcpy(mxGetPr(mxEntrada), datosEntrada, sizeof(datosEntrada));
 
    engPutVariable(ep, "datosEntrada", mxEntrada);
 
    // Ejecutar el script de Matlab
    engEvalString(ep, "resultados = miFuncionMatlab(datosEntrada);");
 
    // Obtener resultados desde Matlab
    mxArray *mxResultados = engGetVariable(ep, "resultados");
    double *resultados = mxGetPr(mxResultados);
 
    // Procesar resultados en Builder según sea necesario
 
    // Liberar memoria
    mxDestroyArray(mxEntrada);
    mxDestroyArray(mxResultados);
 
    // Cerrar el motor de Matlab
    engClose(ep);
 
    return EXIT_SUCCESS;
}

Asegúrate de adaptar esto según tu situación. `miFuncionMatlab` debería ser reemplazada con el nombre de la función de Matlab que quieras ejecutar y ajustar los datos de entrada y salida según tus necesidades específicas.

Ten en cuenta que la instalación de Matlab y la configuración del entorno son esenciales para que esto funcione. Además, la interfaz "MATLAB Engine API for C++" no está disponible en todas las versiones de Matlab, así que asegúrate de verificar la documentación de Matlab para conocer los detalles específicos de tu versión.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar