【问题标题】:How to plot data dynamically in MATLAB如何在 MATLAB 中动态绘制数据
【发布时间】:2018-09-24 20:54:23
【问题描述】:

我无法动态绘制数据,我的目标是在检查 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

【问题讨论】:

  • 你在哪里被这段代码困住了?您尝试过将此代码扩展到您实际需要的内容吗?另请参阅:Why is “Can someone help me?” not an actual question?,或者在您的情况下“请建议”,这甚至不是一个问题。
  • 它没有绘制任何东西。
  • 这仍然不是问题,只是关于代码当前状态的陈述。
  • 问题是我需要添加\更改以便在我的坐标之间绘制这些矩形

标签: matlab plot matlab-figure figure


【解决方案1】:

在循环内使用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

drawnow 更新数字并处理任何挂起的回调。如果您修改图形对象并希望立即在屏幕上看到更新,请使用此命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多