Tengo un proyecto BE cuyo código está en MATLAB pero necesito presentar resultados en una página web. Quiero saber si puedo ejecutar mi código directamente en un sitio web. Si no, ¿podría decirme qué idioma sería una mejor opción? Estoy pensando en ASP, HTML y PHP.¿Puedo ejecutar el código de MATLAB en un sitio web?
Respuesta
Debería poder invocar MatLab usando passthru e incluir su salida en la página.
Consulte también las opciones de línea de comandos MatLab on Windows o on Unix.
hay una nueva tecnología para la interfaz de usuario web para MATLAB donde se puede crear interfaces como botones, el botón de carga de archivos y el texto ¿entrada? –
Puede compilar su aplicación MATLAB en un ejecutable independiente utilizando el compilador MATLAB.
Escriba "mcrversion" en el indicador para determinar si tiene este paquete instalado: es probable que no lo haga si no lo ha pagado. Al igual que con la mayoría de las extensiones que proporciona Mathworks, debe pagarlo. .
Si no necesita compilar el código, simplemente ejecútelo, puede invocar MATLAB a través de la línea de comandos para hacer lo que necesita.
Como mencionó Sinan, utilizaría una función como passthu en ambos casos.
Otra alternativa es crear una extensión para que PHP utilice MATLAB en C. MATLAB proporciona una API C que le permite llamar al motor utilizando bibliotecas que vienen con MATLAB (consulte ejemplos de su carpeta "extern").
Véase el siguiente enlace en la creación de la extensión (Es bastante fácil):
http://devzone.zend.com/article/1021
Búsqueda de "MATLAB C/Fortran API" en MATLAB o Google para la documentación sobre las funciones. Básicamente, es probable que necesite llamar a EngOpen para llamar al motor y devolver un puntero.
Evalúe una cadena usando engEvalString (puede cargar archivos .m de esta manera o hacer cualquier cosa que pueda hacer en la línea de comandos típica de matlab).
Cuando necesite ver los resultados (cualquier cosa que normalmente salga a la línea de comandos en matlab), simplemente omita el punto y coma después del comando y use engOutputBuffer para capturar la salida.
Aquí es un ejemplo simplificado de algo que escribí:
#include "mat.h"
#include "engine.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFER_SIZE 256
int main()
Engine *ep;
char buffer[BUFFER_SIZE]; // The buffer used to capture output.
buffer[BUFFER_SIZE] = '\0'; /* Terminate the last character of the buffer. */
if (!(ep = engOpen(NULL))) {
fprintf(stderr, "\nCan't start MATLAB engine\n");
return EXIT_FAILURE;
}
if (engEvalString(ep, "load data/mymatfile.mat") != 0)
printf("error evaluating expression\n");
engOutputBuffer(ep, buffer, BUFFER_SIZE);
/* No output returned. */
if (engEvalString(ep, "p = 1+1;") != 0)
printf("error evaluating expression\n");
/* Output written to buffer- Note the omitted character (;). */
if (engEvalString(ep, "q = p+1 "))
printf("error evaluating expression\n");
/* You will probably need to trim the whitespace in the buffer contents.
I estimated +5 to pull out the prompt: ">>", but it depends on which version
you have, for example, the student version displays "EDU >>\n". */
printf("print the contents of the buffer:%s\n", buffer+5);
/* Turn off output buffering. */
engOutputBuffer(ep, NULL, 0);
/* Close the engine. */
engClose(ep);
exit(0);
}
Una vez que tenga una extensión de PHP básico compilado, tirar las llamadas al motor anterior en su extensión y se puede llamar a MATLAB mediante la función de PHP que has definido en tu extensión
La compilación de la API MATLAB es probablemente la parte más difícil. Aquí están los contenidos de mi Makefile (sin el código de extensión PHP).
phpmat: phpmat.o
gcc phpmat.o
/usr/local/matlabR2009a/extern/lib/glnx86/version4.o
/usr/local/matlabR2009a/bin/glnx86/libeng.so
/usr/local/matlabR2009a/bin/glnx86/libmex.so -o phpmat
phpmat.o: phpmat.c
gcc -c phpmat.c -I/usr/local/matlabR2009a/extern/include
-L/usr/local/matlabR2009a/extern/lib/glnx86
-L/usr/local/matlabR2009a/bin/glnx86
-L/usr/local/matlabR2009a/sys/os/glnx86 -L/usr/local/matlabR2009a/bin/glnx86
clean:
rm *.o
Usted va a necesitar para establecer LD_LIBRARY_PATH antes de compilar/llamando a la extensión ...Sin embargo, hay alternativas para esto:
LD_LIBRARY_PATH=/usr/local/matlabR2009a/extern/lib/glnx86:/usr/local/matlabR2009a/bin/glnx86:/usr/local/matlabR2009a/sys/os/glnx86:$LD_LIBRARY_PATH
Quizás esta es la solución correcta: http://www.mathworks.com/products/new_products/webserver_discontinued.html
edición que contienen estas dos páginas:
No apostaría mucho porque ya no está disponible. – Agos
Pero la página contiene también dos alternativas. –
He hecho una edición para evitar un malentendido, lo siento, fue mi culpa. –
MATLAB tiene gran integración con .NET. Necesita el MATLAB Compiler + el Builder NE toolbox para crear un ensamblado .NET que pueda ejecutar desde una aplicación web basada en .NET.
Algunas alternativas: Usted puede hacer lo mismo usando R (ver this SO question), o posiblemente Python + numpy/scipy sin todos los costos de licencias.
Su mejor opción podría ser utilizar el comando de publicación de matlab, que le permite crear HTML a partir de su código de matlab. Si realmente no necesita ejecutar el script en vivo, esto le permitirá generar automáticamente su salida y crear copias de imágenes de sus figuras. Después de generar el HTML y las imágenes, simplemente puede cargarlos en su sitio.
SaturnAPI proporciona una interfaz REST para las secuencias de comandos MATLAB, de modo que usted no tiene que instalar nada en su propio servidor. Incluso puede enviarle gráficos en 3D codificados en Base64. Aquí está el demo. A continuación se muestra un diagrama que muestra que puede pasar entradas al script a través de la variable SaturnParams
en la llamada HTTP.
Revelación: Yo trabajo en SaturnAPI
- 1. ¿Cómo ejecutar el código de Matlab en un dispositivo Android?
- 2. ¿Puedo ejecutar código ASP.NET 2.0 y 3.5 en el mismo sitio web?
- 3. Cómo ejecutar MSDeploy un paquete de sitio web creado en un sitio web de IIS virgen
- 4. JQuery: ¿Cómo ejecutar música de fondo en el sitio web?
- 5. Posible ver el código PHP de un sitio web?
- 6. Ejecutar un sitio web ASP.NET en una subcarpeta
- 7. ¿Cómo ejecutar código MATLAB desde Java?
- 8. ¿Puedo ejecutar una aplicación MVC y WCF Web Api en el mismo sitio de AppHarbor?
- 9. ¿Siempre publica el sitio web con el código de publicación?
- 10. ¿Cómo puedo recuperar el favicon de un sitio web?
- 11. ¿Cómo puedo obtener el favicón de un sitio web?
- 12. Ejecutar Lua bajo nginx (escribir un sitio web con Lua)
- 13. Ejecutar el archivo de clase Java desde el script PHP en un sitio web
- 14. ¿Cómo puedo iniciar sesión en un sitio web usando Python?
- 15. código PHP es visible en el sitio web
- 16. ¿Cómo cambiar el navegador web predeterminado al depurar/ejecutar un sitio web?
- 17. ¿Cómo puedo reproducir un archivo PLS desde un sitio web?
- 18. Medición en un sitio web
- 19. Descargar el código fuente del sitio web de Apple
- 20. ¿Cómo puedo insertar un sitio web en mi aplicación?
- 21. Malware en el sitio web de un cliente - Ideas?
- 22. API's en el sitio web
- 23. Cualquier sitio web en línea para ejecutar programas pl sql
- 24. ¿Cómo puedo iniciar sesión en un sitio web con Python?
- 25. ¿Cómo puedo implementar OCR en un sitio web usando PHP?
- 26. Obtener datos del sitio web
- 27. ¿Cómo puedo ver un sitio web ejecutándose en localhost en la máquina en el navegador chrome?
- 28. Problemas al autenticar al sitio web desde el código
- 29. ASIFormDataRequest POST devuelve el código fuente del sitio web?
- 30. ¿Cómo puedo superponer imágenes (png) dentro de un sitio web?
gracias ... malos probarlo –