domingo, 7 de septiembre de 2014

GUI MatLab: Representa y Guarda Imagen.

La siguiente interfaz gráfica de usuario (GUI) de MatLab imprime en una venta la función sen(x) en este caso, a la vez que la guarda en formato figure de MatLab en el directorio donde se encuentre el programa con el nombre '#Seno.fig'.
Los componentes de la ventana son dos, un botón (PushButtons) llamado Dibuja, y unos ejes (Axes) llamados Grafica:

El código es el siguiente:

function varargout = GUI1Grafica(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @GUI1Grafica_OpeningFcn, ...
                   'gui_OutputFcn',  @GUI1Grafica_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 GUI1Grafica_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

function varargout = GUI1Grafica_OutputFcn(hObject, eventdata, handles) 
varargout{1} = handles.output;

function dibuja_Callback(hObject, eventdata, handles)
a = 0 : pi/10 : 2*pi;
% Se representa la gráfica
hold on;
plot(handles.Grafica,a,sin(a));
legend(handles.Grafica,'Función Seno');
hold off
% Se guarda la gráfica
hold on;
Fig1 = figure;
AxesH = axes;
plot(a,sin(a));
legend('Función Seno');
Fig2 = figure;
copyobj(AxesH, Fig2);
hgsave(Fig1, '#Seno.fig');
hold off;

La ejecución del programa queda con se ve a continuación:

Un saludo.

No hay comentarios:

Publicar un comentario