为每次迭代绘制新图

时间:2019-06-15 11:58:57

标签: matlab for-loop plot

如何在不叠加图的情况下为每次迭代绘制一个新的新图?以及如何更改X方向,以便“流动”似乎来自相反的方向?

Im绘制了一个3个小时地震数据的窗口,该窗口随每次迭代而变化。地震数据每8秒(理想情况下)就好像是实时进给一样变化。当我运行脚本时,它会将每个迭代绘制在彼此之上。我试图将Figure命令放在整个for循环的顶部,但这无济于事。

为了使数据从右向左流动,而不是从左向右流动,我尝试插入set(gca,'XDir','reverse'),但它仍然从右侧“馈送”。

for k = 1:length(AAA)/8*sampleRate 
V=AAA(1+k*8*sampleRate:(3*L)+k*8*sampleRate);
v2=flipud(V);

d1 = length(BPPUdpluk);
s = 1;
output = zeros(round(L/s),d1);

for i=1:length(v2)-d1
  xj2=0;
  yj2=0;
  xy2=0;
  val2=0;
    for j=1:d1
  xj2=xj2+BPPUdpluk(j)*BPPUdpluk(j);
  yj2=yj2+v2(j+i-1)*v2(j+i-1);
  xy2=xy2+BPPUdpluk(j)*v2(j+i-1);
    end
 %  val=xy/(sqrt(xj).*sqrt(yj))
  corr3(i)=xy2/(sqrt(xj2)*sqrt(yj2));
end
toc

corr4 = corr3';
corr4 = flipud(corr4);
Udslag(k)=length(corr4(corr4>=0.25));


figure(6)
red=zeros(1,length(corr4));
red(:)=0.25;
time2 = (0:3/(length(corr3)-1):3);
subplot(2,1,1)
plot(time2,corr4,'color',[0 0.4470 0.7410])
xlabel('Time[Hr] - 3Hr window')
ylabel('CC')
%hold on 
plot(time2,red,'r')
set(gca, 'XDir','reverse')
%axis([0 3 -1 1]);
set(gca,'xtick',[])
grid
%hold off
if Udslag(k) <=1
hold on
subplot(2,1,2)
bar(Udslag(k))
set(gca,'Color','g')
hold off
else if Udslag(k) == 2
    hold on
    subplot(2,1,2)
    bar(Udslag(k))
    set(gca,'Color','y')
    hold off
    else
        hold on
        subplot(2,1,2)
        bar(Udslag(k))
        set(gca,'Color','r')
        hold off
    end
end
end

我希望每次运行时,该图将在每次迭代中显示为新图。我希望x方向可以反转。

它在旧图的顶部绘制,并且x方向仍然相同。

0 个答案:

没有答案