FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Matlab en delphi
Hola amigos, aqui con una pregunta, como puedo usar Matlab en Delphi, es decir temer un .m de matlab y que arroje resultados en Delphi, gracias.
|
#2
|
||||
|
||||
No lo hice pero mas o menos te doy una idea de como lo haria.
1. Crea un archivo .m que escriba los resultados que te interesen en un archivo de texto. 2. Al final del archivo asegurate de tener el comando "quit" 3 .Luego llama a Matlab pasando el parametro "-r NombreArchivo.m". 4. Espera a que el proceso termine 5. Lee el archivo que escribiste. Posiblemente existan otras soluciones que desconozco, pero puedes empezar con esto.
__________________
[Crandel] |
#3
|
||||
|
||||
Puedes aparte pasarle otros parametros para que sea mas rapido el asunto como:
-nojvm para que no cargue toda la interface de java -nosplash para que no muestre la ventana splash -minimize para que inicie minimizado
__________________
[Crandel] |
#4
|
||||
|
||||
Comentandolo con un compañero de trabajo me comento que existe otra forma, que es utilizando componentes COM atraves del archivo mlapp.tlb.
Mas info google
__________________
[Crandel] |
#5
|
|||
|
|||
Hola,
Eso es un ejemplo de usar Matlab en Delphi segun COM. |
#6
|
|||
|
|||
Gracias amigos por sus respuestas, osea que lo unico que hace el ejemplo es mandar llamar el programa hecho en Matlab de esta forma:
// Set Current Directory MatlabServer.Execute('cd( ''C:\Program Files\MATLAB\R2007\work'' );'); // Execute test.m MatlabServer.Execute('test;'); ??? Y en si lo que ocupo amigos es por ejemplo vi que en Matlab puedo crear un .exe del programa que se ha realizado en Matlab entonces, con una aplicacion en Delphi mandarla llamar y se este ejecutando sin tener que llamar el .m de matlab ya que se llamara el .exe, gracias. |
#7
|
||||
|
||||
Exelente ejemplo !!!
Cita:
__________________
[Crandel] Última edición por Crandel fecha: 10-03-2009 a las 09:41:33. |
#8
|
|||
|
|||
Hola,
>ronald_tro >// Execute test.m >MatlabServer.Execute('test;'); >??? Yo no se cual es el nombre de tu m-file y donde esta localizado. Por ejemplo yo tomó mis directorio y file. Necesitas cambiarlos por tus valores apropiados. ?Otras botones (magic cuadrado, calculacion de espectro) funcionan normalmente? >Crandel Gracias |
#9
|
|||
|
|||
Amigo Crandel estuve viendo lo que comentaste y al parecer si debe de funcionar, voy a ahcer unas pruebas y ya luego comento, amigo rounin con la instruccion que dices mando llamar el .exe. ahora, no entiendo tu pregunta, gracias.
|
#10
|
||||
|
||||
Por supuesto que funciona. En la empresa que trabajo estuvieron distribuyendo asi su sistema por varios años . Yo entre a trabajar en la epoca final de su uso y hemos terminado reescribiendo gran parte de su código en C++ para la nueva versión.
__________________
[Crandel] |
#11
|
|||
|
|||
No he entendido esencia de tu dificultad.
(Mi espanol es no muy bueno) Sobre crear exe de m-file Por ejemplo, tenemos test funcion en test.m. (Matlab compiler puede compilar solo funciones) Código:
%---------- test.m -------------- function test(arg1_str) % puede ser sin argumentos k = eval(arg1_str); han = 128; N = 2048; rate = 1; for i = 1:N sample(i) = 3*rand() + sin(2.0*i)*sin(0.1*i); end; sample = sample .* k; [spectrum, freq] = psd(sample, N, rate, hanning(han), han/2, 'linear'); dlmwrite('result.dat', [freq, spectrum], ' '); mcc -m -B sgl -I "C:\Program Files\MATLAB\R2007\toolbox\signal\signal" test.m o simplemente mcc -m test.m Para posibilidad de ejecutar este exe-file en un ordernador sin Matlab, necesitas instalar Matlab Run-Time. (mglinstaller.exe en Matlab6.5, MCRInstaller.exe en Matlab2007R etc - mira el Help) De Delphi puedes ejecutar este exe-file y obtener resultados por medio de archivo.
|
#12
|
|||
|
|||
Oops, duplicado
Última edición por rounin fecha: 11-03-2009 a las 16:49:16. |
#13
|
|||
|
|||
Ok amigo rounin, entonces asi como lo pones el ejemplo le asignas el resultado a un .dat? o en delphi creas la funcion que se hizo en matlab y se ejecuta el programa (en Delphi) con el MatlabCompiler?,
Amigo Crandel es asi como lo dices tu?, porque en el enlace que pusiste me llava MatlabCompiler 4.10, entonces hablando en general instalo MatlabCompiler y al llamar el archivo de matlab ejecutable lo debe de ejecutar que no?, o me equivoco?, gracias. Última edición por ronald_tro fecha: 12-03-2009 a las 06:41:18. |
#14
|
||||
|
||||
Cita:
En realidad yo no me encargaba de esta parte, ya habia un grupo que armo todo antes que yo entre. Pero la idea es esa, puedes hacer la compilación por linea de comando como escribio rounin o puedes hacerlo con una pequeña interfase que trae matlab, que se ejecuta con la sentencia Código:
deploytool
__________________
[Crandel] Última edición por Crandel fecha: 12-03-2009 a las 15:23:36. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cómo me comunico con Matlab mediante COM | felipin007 | Providers | 2 | 21-04-2010 07:49:34 |
Estructura del fichero MATLAB | bustio | Varios | 6 | 24-10-2007 20:12:16 |
Consulta Delphi 6, Delphi 2005 y Delphi 2006 | Leviatan | Varios | 6 | 18-08-2007 16:02:08 |
problemas con DLL de MatLab | emeceuy | Varios | 6 | 01-08-2007 23:02:39 |
Combinar Matlab-Builder | Amago | C++ Builder | 0 | 10-06-2004 13:03:37 |
|