Matlab - Crear .exe de distintos guis

 
Vista:

Crear .exe de distintos guis

Publicado por Beletti (9 intervenciones) el 06/05/2007 01:17:22
Hola!!

Estoy acabando mi proyecto final de carrera, hecho con Matlab y me gustaría saber si hay alguna manera de hacer un .exe de modo que se pueda abrir en cualquier ordenador (tenga o no Matlab).

He visto algunas consultas que han hecho usuarios de este foro y hablaban de la opción
mcc -m nombre_archivo.m nombre_archivo.fig, pero mi pregunta es la siguiente: el programa que yo he hecho tiene más de un gui y por tanto cómo podría hacer para que tuviera un sólo exe sin tener que hacer .exe de cada archivo gui? Es decir, que hubiera un .exe que me permitiese abrir toda la aplicación?

Gracias y saludos!!
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

RE:Crear .exe de distintos guis

Publicado por javi (11 intervenciones) el 06/05/2007 15:13:07
Tengo el mismo problema que tu y no consigo que me lleve de un gui a otro, no me reconoce las Callback de los botones y demas
Te pido que appuntes mi correo electronico y si descubres como se hace me lo mandes, yo intento hacer lo mismo
Muchas gracias, un saludo
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

RE:Crear .exe de distintos guis

Publicado por Angel (4 intervenciones) el 06/05/2007 15:43:09
Si haces el .exe de la GUI principal el solo llamará a las demás GUIs, no hace falta compilar todas las GUIs.

Javi --> para que una GUi te lleve a otra GUi, solo debes poner debajo de la función del botón el nombre de la GUI a la que quieres ir al pulsar el botón.

Salu2.
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

RE:Crear .exe de distintos guis

Publicado por Beletti (9 intervenciones) el 06/05/2007 22:25:46
Gracias Ángel, lo probaré, aunque me parece un poco extraño que haciendo sólo un .exe del gui principal llame a los demás guis directamente dado que pienso que cada gui "es un mundo", es decir, dentro de cada gui hay infinidad de funciones, etc y por tanto me resulta dificil de comprender que haciendo el gui del principal funcione todo lo demás, y aún me parece más extraño que haciendo el .exe del gui principal y pasando ese .exe a otro ordenador sin matlab funcione jeje.
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

RE:Crear .exe de distintos guis

Publicado por javi (11 intervenciones) el 07/05/2007 00:38:02
Hola, explico un poco mejor cual es mi problema
Yo no uso el gui sino que prefiero usar en .m porque asi me resulta mas facil pues es solo cortar y pegar, supongo que esto no será el problema
Mi problema es que al pulsar uno de los botones lo que hace es utilizar otra funcion distinta y esa funcion no me la reconoce porque no me la compila
Yo creo que no la compila porque no la llamo directamente sino que esta dentro del boton en su Callback
Necesito saber si hay alguna forma para decirle que compile la funcion dentro de ese archivo (el primer archivo .m) o hacer una especie de cabecera de funciones como ocurre en C/C++ con los .h y asi decirle que se van a utilizar esas funciones y que quiero que las incluya en la compilacion
Espero haberme explicado
Muchas gracais
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

RE:Crear .exe de distintos guis

Publicado por javi (11 intervenciones) el 07/05/2007 00:50:19
Me explico mejor con un ejemplo
Si aparece la llamada a la funcion directamente no hay problema pues tambien compila el archivo, el problema es si se pone algo como esto

baceptar = uicontrol(...
'Parent',hacceder,...
'Units','normalized',...
'FontUnits','normalized',...
'BackgroundColor',[1 1 1],...
'Callback','acceder',...
'FontName','times new roman',...
'FontSize',0.43,...
'FontWeight','bold',...
'ListboxTop',0,...
'Position',[0.35 0.12 0.25 0.18],...
'String','Acepar',...
'Tag','Aceptar');

"acceder" es una funcion .m pero no la compila al estar dentro del boton baceptar. Necesito saber si se puede forzar de alguna forma a que esa funcion tambien la compile

Si es cierto que si yo tengo dos funciones que se llaman "primera.m" y "segunda.m" y estan dentro de un archivo cuyo codigo es

primera

segunda

Ambas las compila sin problema al hacer el mcc y todo funcionaria correctamente
A ver si alguien puede ayudarme
Un saludo
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

RE:Crear .exe de distintos guis

Publicado por Manolito (9 intervenciones) el 14/05/2007 09:38:32
Para compilar se debe poner la orden:
mcc -B sglcpp funcion1 funcion2 funcion3

Lo de -B ahora mismo no me acuerdo para que era, sglcpp es para q compile en el lenguaje C++ funcion1 es la función principal que por ejemplo podía ser un archivo .fig con su .m asociado, la funcion2 funcion3 y demás que necesites poner son las demás funciones .fig y .m que necesitará ese ejecutable para funcionar.
En principio con esto debería salir y si el programa no es muy chungo funciona pero no es fiable porque la mayoría de las veces no se porque no funciona, yo todavía no he conseguido compilar ningún programa.
Espero que te sirva de ayuda.
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

RE:Crear .exe de distintos guis

Publicado por Angel (4 intervenciones) el 08/05/2007 21:50:40
Yo también tengo varios GUIs y cada GUI ya se que es un mundo, pero solo compilo el principal y el va llamando a los demás.

Sea uno o dos o más GUIs para que funcione en un pc debe tener instalado Matlab o en su defecto unas carpetas y archivos determinados (por eso compilando solo un GUI funciona), aquí te lo esplica mejor, espero que te sirva:

http://www.lawebdelprogramador.com/news/mostrar_new.php?id=132&texto=Matlab&n1=379841&n2=0&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0

Salu2.
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