
Eliminar un plot, cuando hay varios en una misma figura
Publicado por Daniel (4 intervenciones) el 03/12/2014 08:27:50
Yo tengo el siguiente código, con varias funciones como la seno que son checkbox (tengo otras , que me representan transformadas de fourier de otras señales coseno, sinc y pulso cuadrado) entonces quiero que cuando pulsas al botón del checkbox, muestre la señal superpuesta con el resto que se generan. Esto lo realiza correctamente, pero quiero que cuando desactivas el checkbox, deje de mostrar solamente la gráfica de esa función, el delete que tengo puesto no funciona, ya que h pierde su valor de una iteración a otra, la cosa es como guardar ese valor de alguna forma para utilizarlo posteriormente y así poder borrar el plot que yo quiera y no los axes enteros como hacía anteriormente con cla. Gracias de antemano
function seno_Callback(hObject, eventdata, handles)
if(get(hObject,'Value'))
y1=sin(2*pi*1*handles.ejex);%Genera la función seno// El handles.exe1 lo hemos definido al principio del programa para utilizarlo con otras señales.
Y1 = (1/310)*fftshift(abs(fft(y1)));%Calcula la transformada de fourier
frec=linspace(-100,100,length(Y1));%Hayamos el eje de frecuencias
hold on;
h=plot(frec,Y1,'LineWidth',2);%Representa la transformada de fourier
axis([-2*pi 2*pi -1 2 ]);
else
delete(h);
end
function seno_Callback(hObject, eventdata, handles)
if(get(hObject,'Value'))
y1=sin(2*pi*1*handles.ejex);%Genera la función seno// El handles.exe1 lo hemos definido al principio del programa para utilizarlo con otras señales.
Y1 = (1/310)*fftshift(abs(fft(y1)));%Calcula la transformada de fourier
frec=linspace(-100,100,length(Y1));%Hayamos el eje de frecuencias
hold on;
h=plot(frec,Y1,'LineWidth',2);%Representa la transformada de fourier
axis([-2*pi 2*pi -1 2 ]);
else
delete(h);
end
Valora esta pregunta


0