Matlab - guardar desde gui variables del workspace

 
Vista:

guardar desde gui variables del workspace

Publicado por Mario  (8 intervenciones) el 05/06/2010 01:10:32
Hola, quería consultarles si alguno de ustedes sabe del algún comando que permita guardar en un archivo .mat las variables que se encuentren en el workspace de matlab mediante una gui.
Es decir, tengo una cantidad de variables que paso desde la gui al workspace mediante el comando assignin, luego quiero que las variables que voy guardando las pueda almacenar en un archivo .mat. Probé con el comando save, pero me guarda las variables que voy definiendo en la gui, no las del workspace.

Espero que me puedan ayudar, les agradecería mucho
que estén bien
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:guardar desde gui variables del workspace

Publicado por Jorge (226 intervenciones) el 05/06/2010 02:02:15
Las variables generalmente son locales.

Si quieres que sean globales (que se vean fuera de su función o entorno) tienes que declararlas explícitamente como tales, con la palabra ' global ' seguida de la lista de variables. Esto se tiene que hacer al principio de todas las funciones o entornos en donde quieres que estén visibles.

El comando ' save ' puede guardar todas las variables que en ese momento se estén viendo por Matlab. Si no las graba, es que no las está viendo en ese momento.

Otra posibilidad es que las pases como argumentos en cada función, o también las puedes grabar en los 'handles' de la gui, y tenerlas accesibles en donde corresponda.
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:guardar desde gui variables del workspace

Publicado por Mario (8 intervenciones) el 05/06/2010 02:13:48
Jorge, muchas gracias por responder, pero me refiero a las variables que voy dejando en el workspace con el comando assignin, la idea es que mediante la gui pueda guardar en un archivo .mat las variables que voy dejando mediante este comando, que son las cuales quiero guardar. Si llamo al comando save dentro de la gui, me almacena las variables que yo he definido en la gui pero no las que he ido guardando en el workspace.
Lo puedo hacer en forma manual en File--> save workspace as...

Gracias Jorge.
Saludos
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:guardar desde gui variables del workspace

Publicado por Julian C. (75 intervenciones) el 05/06/2010 15:33:14
Saludos,

Mario, lo que sucede es que en Matlab existen dos espacios de trabajo (o workspace):

1. Espacio de trabajo base y,
2. Espacio de trabajo de la función

Cuando emites el comando SAVE, se almacena en un archivo *.mat (por defecto) las variables del espacio de trabajo actual, como en este caso el comando se hace desde la GUI, por eso se almacenan las variables del workspace de la función, es decir, las variables definidas en la GUI.

Una posible solución sería que crees un archivo, por ejemplo, guardarVariables.m, en donde el código sea:

save('variables-base.mat');

Este archivo (guardarVariables.m) debe ser almacenado en la carpeta 'Work' o una de las carpetas que estén en el path de Matlab, para que no haya problema al llamar el script.

Ahora, lo que debes hacer es llamar el script, es decir, donde anteriormente usabas el comando SAVE (en la GUI), ahora colocas el nombre del script (sin la extensión). Ejemplo:

guardarVariables

Lo que se está haciendo es salir momentáneamente del espacio de trabajo de la función para guardar las variables del espacio de trabajo base. Una vez se termina el código del script 'guardarVariables', se continua con la ejecución de las instrucciones contenidas en la GUI.

Espero que esta solución te sirva. Saludos, Julian...
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:guardar desde gui variables del workspace

Publicado por Jhonatan (1 intervención) el 30/12/2010 19:36:43
save(filename) stores all variables from the current workspace in a MATLAB formatted binary file (MAT-file) called filename.
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