如何在MATLAB中动态绘制数据

如何在MATLAB中动态绘制数据,matlab,plot,matlab-figure,figure,Matlab,Plot,Matlab Figure,Figure,我无法动态绘制数据,我的目标是在检查14天的特定测试后绘制数据。如果我进入条件循环,我希望在第1天和第14天之间执行一个矩形。 当我进入最后一个if循环时,我已经有了一个xfist,xlast,y first,y last。所以我可以在它们之间画一个矩形。然后,当我再次通过14天测试时,我想在现有绘图中添加另一个矩形 这是到目前为止我的代码 绘制线不会绘制任何内容 j=1; while(j<72) boom=true;

我无法动态绘制数据,我的目标是在检查14天的特定测试后绘制数据。如果我进入条件循环,我希望在第1天和第14天之间执行一个矩形。 当我进入最后一个if循环时,我已经有了一个xfist,xlast,y first,y last。所以我可以在它们之间画一个矩形。然后,当我再次通过14天测试时,我想在现有绘图中添加另一个矩形

这是到目前为止我的代码

绘制线不会绘制任何内容

j=1;    
      while(j<72)
         boom=true;             
           if a13(j)~= b8(j)|| a13(j)>1.1*(b8(j))&& a13(j)<0.9*(b8(j))
           elseif a13(j)~=c5(j)|| a13(j)<0.9*(c5(j))&&a13(j)<0.9*(c5(j))
               boom=false;

           end
        Xfirst=[];
            Yfirst=[];
            Xlast=[];
            Ylast=[];
            Yfirst=a13(j);
            Xfirst=datetime(Date(j));           
          for i=j+1 :j+14 
            if a13(i)~= b8(i)|| a13(i)>1.1*(b8(i))&& a13(i)<0.9*(b8(i))
            elseif a13(i)~= c5(i) || a13(i)<0.9*(c5(i)) && a13(i)>1.1*(c5(j)) 
                 j=i;
                boom=false;
                break;
            end
          end
           if(boom==true)
                Ylast=a13(j+14);
                Xlast=New_Date(j+14);
                figure (1)
                plot(Xfirst,Yfirst)
                hold on
               plot(Xlast,Ylast)
           end 
           j=j+1;
      end
j=1;

而(j1.1*(b8(j))和&a13(j)在循环内使用
drawnow

j=1;


  while(j<72)
     boom=true;             
       if a13(j)~= b8(j)|| a13(j)>1.1*(b8(j))&& a13(j)<0.9*(b8(j))
       elseif a13(j)~=c5(j)|| a13(j)<0.9*(c5(j))&&a13(j)<0.9*(c5(j))
           boom=false;

       end
    Xfirst=[];
        Yfirst=[];
        Xlast=[];
        Ylast=[];
        Yfirst=a13(j);
        Xfirst=datetime(Date(j));           
      for i=j+1 :j+14 
        if a13(i)~= b8(i)|| a13(i)>1.1*(b8(i))&& a13(i)<0.9*(b8(i))
        elseif a13(i)~= c5(i) || a13(i)<0.9*(c5(i)) && a13(i)>1.1*(c5(j)) 
             j=i;
            boom=false;
            break;
        end
      end
       if(boom==true)
            Ylast=a13(j+14);
            Xlast=New_Date(j+14);
            figure (1)
            plot(Xfirst,Yfirst)
            hold on
           plot(Xlast,Ylast)
           drawnow; % To force figure to update
           pause(0.2); % to allow time for it to render
          end 
       j=j+1;
  end
j=1;

而(j1.1*(b8(j))和&a13(j)在循环内使用
drawnow

j=1;


  while(j<72)
     boom=true;             
       if a13(j)~= b8(j)|| a13(j)>1.1*(b8(j))&& a13(j)<0.9*(b8(j))
       elseif a13(j)~=c5(j)|| a13(j)<0.9*(c5(j))&&a13(j)<0.9*(c5(j))
           boom=false;

       end
    Xfirst=[];
        Yfirst=[];
        Xlast=[];
        Ylast=[];
        Yfirst=a13(j);
        Xfirst=datetime(Date(j));           
      for i=j+1 :j+14 
        if a13(i)~= b8(i)|| a13(i)>1.1*(b8(i))&& a13(i)<0.9*(b8(i))
        elseif a13(i)~= c5(i) || a13(i)<0.9*(c5(i)) && a13(i)>1.1*(c5(j)) 
             j=i;
            boom=false;
            break;
        end
      end
       if(boom==true)
            Ylast=a13(j+14);
            Xlast=New_Date(j+14);
            figure (1)
            plot(Xfirst,Yfirst)
            hold on
           plot(Xlast,Ylast)
           drawnow; % To force figure to update
           pause(0.2); % to allow time for it to render
          end 
       j=j+1;
  end
j=1;

而(j1.1*(b8(j))&&a13(j)您在哪里被这条代码卡住了?您尝试过将这条代码扩展到您实际需要的内容吗?另请参阅:,或者在您的情况下“请提供建议”,这甚至不是一个问题。它没有绘制任何东西。这仍然不是一个问题,只是一个关于代码当前状态的声明。问题是我需要添加什么\更改,以便绘制坐标之间的矩形。您在哪里被困于此代码?您尝试过将此代码扩展到实际需要的内容吗?还有请参阅:,或者在您的案例中,请注意,这甚至不是一个问题。它不会绘制任何东西。这仍然不是一个问题,只是一个关于代码当前状态的声明。问题是我需要添加\更改什么,以便在我的坐标之间绘制这些矩形