MATLAB: Clear figure content using clf

figureplot

Hi all, I have a question about the use of figure() and clf() that I wanted to ask. I am running a code that is calling a certain figure many times within a for loop. I create the figure window outside the loop, and then, anytime I need to plot something (let's say if a certain condition within the foor loop is met) I am calling the figure again and plot my data. Anytime I call the figure, previous data drawn on it are overwritten by new data, just by calling figure() and plot(). So I was wondering, what's the role of clf() if past data are overwritten anyway? What's the difference between just doing figure(); plot() and figure(); clf(); plot(). Thanks a lot Chiara

Best Answer

If you have open a new figure, it is cleared anyway. So there is no difference between
figure(); plot()
and
figure(); clf(); plot()
If you have you open a figure before a loop and then plot into this figure, the previous content is cleared by default, so you do not need a
figure(3), clf
The clf is useful when you have changed the default behaviour of clearing a figure before each plot using
hold on