Hi, I am trying to plot graphs in a for loop over one another for which, I am using the following code:
for secs=0.75:0.25:1.50
[ etf , decayFct , etfFreq , buildUpNorm , PNR ]=calcEtfSch(data,f_sampl,secs,data_point);
lgSch=10*log10(decayFct);
plT(lgSch,etfFreq);
hold on;
axis([ 0 1.5 -60 0 ]);
xticks([0 .25 0.5 0.75 1.00 1.25 1.50 ])
title( 'Schroeder curves with differing upper integration limits' )
end
However, I get 4 different plots rather than them being on the same graph. I will be glad to get some help.

2 个评论

Where are you plotting?
My bad. The plT function is my plotting function. Following is the code:
function [timLen]=plT(data,sampling_freq)
delta_t=1/sampling_freq;
dataLen=length(data);
timVct=(0:dataLen-1)*delta_t;
timLen=timVct(end);
figure;
plot(timVct,data,'Linewidth',2)
hold on;
end

请先登录,再进行评论。

 采纳的回答

Walter Roberson
Walter Roberson 2017-10-5

0 个投票

Each figure() call creates a new figure. You should remove the figure() call.
If for some reason it is impossible to remove the figure() call, then it will be necessary to use findobj() to locate all of the plots on all of the figures and merge them into a single plot.

1 个评论

I got it working right before I saw your answer. Thank you though!

请先登录,再进行评论。

更多回答(1 个)

Ewout van der Feltz
编辑:Ewout van der Feltz 2017-10-5

0 个投票

When plotting recursively it is often practical to use 'hold all' rather than 'hold on'. Include that before plotting the functions and the plots should end up in the same graph.

类别

帮助中心File Exchange 中查找有关 Creating, Deleting, and Querying Graphics Objects 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by