Matlab - Exportar gráficos, GUIDE y consultas

 
Vista:

Exportar gráficos, GUIDE y consultas

Publicado por Francisco (9 intervenciones) el 09/08/2012 14:44:19
Muy buenos dias a todos !

Antes que nada, quiero agradecer por los que diariamente ayudan sin nada a cambio, la verdad ojala que todo el mundo fuera asi, y no solo en internet. Los felicito

Por otro lado, quiciera hacer un par de consultas simples. Si alguien tiene una idea de como es la mejor forma. Les dejo una imagen para que vean lo que estoy haciendo.

http://img217.imageshack.us/img217/8821/imagenj.png

1) Una parte de la GUIDE, se genera un grafico al cual despues exporto con el siguiente codigo.

handles.axes1 = gca;
F = getframe(handles.axes1);
imwrite(F.cdata,'testfinal.bmp');

http://desmond.imageshack.us/Himg201/scaled.php?server=201&filename=testfinal.png&res=landing

El tema es que los nombres de los ejes no se guardan y solo se guarda la parte del grafico propiamente dicho. ¿ Como podria guardar todo el grafico entero y no solo donde se dibujan las lineas ?

2) Al guardar el grafico, pido un nombre, pero quiero saber si el campo del nombre esta vacio, como puedo hacer ? Probe comparando string con cmpstr y pasando a numero y despues comparando con un if. Pero al parecer no funciona ninguna ya que nunca me dan iguales si comparo el edittext con "". No se si me exprese bien...


3) Se puede exportar los datos del grafico, para usarlos con otro programa y sacar otros calculos ? Es decir, en vez de una imagen, exportar todos los datos del grafico. El tema es que yo lo estoy "incrustando en la GUIDE" , y sin la misma sale una ventana con muchas mas opciones ( con el comando plot). Pero al hacerlo por GUIDE, tengo que hacer todo con codigo.

4) Para generar un exe del programa o a un formato multiplataforma como java, que me recomiendan ? La idea es que pese lo menos posible y sea facil de transportar. Probe de generar un exe pero solo se puede usar si tens los archivos de matlab, quice hacerlo en java pero me tira errores al compilarlo.

Eso es todo, perdon si me excedi.. Desde ya muchisimas gracias por leerlo. Crean que estuve leyendo antes de hacer estas preguntas, pero no las pude solucionar del todo.

Un saludo a toda la comunidad de la webdelprogramador !!
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Exportar gráficos, GUIDE y consultas

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 15/08/2012 17:53:50
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function varargout = guardar_figuras_axis2(varargin)
%%http://www.lawebdelprogramador.com/foros/Matlab/1344536-Exportar_graficos,_GUIDE_y_consultas.html
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @guardar_figuras_axis2_OpeningFcn, ...
                   'gui_OutputFcn',  @guardar_figuras_axis2_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function guardar_figuras_axis2_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
 
function varargout = guardar_figuras_axis2_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
 
%1RA FORMA
x=linspace(-2*pi,2*pi);
figure(1);
h=plot(x,sin(x));
xlabel('xlabel')
ylabel('ylabel')
saveas(h,'guardar_figuras_axis2_1.jpg');
close(1)
 
%2DA FORMA
x=linspace(-2*pi,2*pi);
axes(handles.axes1)
plot(x,sin(x));
xlabel('xlabel')
ylabel('ylabel')
F = getframe(gca,[-60 -60 380 360 ]);
imwrite(F.cdata,'guardar_figuras_axis2_2.jpg');
 
%3RA FORMA
h=figure(1);
plot(x,sin(x));
xlabel('xlabel')
ylabel('ylabel')
print(h,'-djpeg','-r200','guardar_figuras_axis2_3.jpg')
close(h);



Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

http://matlabcaballero.blogspot.com
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

Exportar gráficos, GUIDE y consultas

Publicado por Francisco (9 intervenciones) el 17/08/2012 15:04:17
JOSE JEREMIAS CABALLERO !!!!

SOS UN CAPO !!!! MUCHISIMAS GRACIAS !!!

ME AYUDASTE UN MONTON !!!

Gracias por todo !! es increible, como ayudas a todos. Eso es tener amor por lo que uno hace !

Te felicito, cada uno ayuda en lo que uno conoce y vos con matlab realmente te mereces un reconocimiento. Saludos desde Bariloche, Argentina !

:)
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

Exportar gráficos, GUIDE y consultas

Publicado por isa (1 intervención) el 14/06/2013 20:03:57
muchas gracias por la explicacion
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

Exportar gráficos, GUIDE y consultas

Publicado por jose estepa (1 intervención) el 28/09/2017 07:11:09
Buena tarde. REsulta que con un boton de guide tengo la opcion de graficar dos funciones que he realizado bajo la funcion ezplot.

Pero guide me grafica las imagenes en el fondo de la interfaz. Como puedo hacer que las grafique por fuera??

Muchas gracias.

Td= (3*I2^2*(R2/s))/Ws



ezplot (Pd,[0,1])
set(gca, 'xDir', 'reverse')
hold on
ezplot (Td,[0,1])
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