【问题标题】:Set axes limits in Matlab GUI在 Matlab GUI 中设置轴限制
【发布时间】:2015-07-31 07:29:53
【问题描述】:

我正在尝试使用 MATLAB GUI 模拟 ECG 信号的实时图。出于测试目的,我正在尝试实现一个正弦波,它好像是实时绘制的。我正在使用一个带有一个按钮的 GUI,该按钮开始绘制正弦波,以及一组标记为“axes1”的轴。以下代码摘自开始按钮的回调函数:

%create a sine wave to plot
X=[0:0.1:25*pi];
X=transpose(X); 
Y=sin(X); 
[a,b] = size(X); 
hold on; 
%initialise axes limits
axis(handles.axes1,[0,a,-1,1]);
%plot sine wave 
for i = 1:a 
plot(handles.axes1,1:i,Y(1:i)); 
drawnow; 
pause(0.01); 
end

结果是一个移动的正弦波,但我试图预先定义轴限制,这样它们就不会在绘制波时不断调整大小。我试过用这条线

axis(handles.axes1,[0,1,-1,1])

要设置轴限制,但它没有按我的意愿工作,我不知道如何从这一点开始。

提前感谢您的帮助!

【问题讨论】:

  • 我已经通过将有问题的行放在 for 循环中解决了这个问题。

标签: matlab plot real-time axes limits


【解决方案1】:

在创建轴时将...LimMode properties 设置为手动;这样,当绘制新数据时,它们不应该改变。默认情况下,它们设置为auto

例如:

set(handles.axes,'XLimMode','manual','YLimMode','manual');

【讨论】:

  • 或使用xlimylimaxis
猜你喜欢
  • 2012-06-23
  • 2014-02-13
  • 2013-10-05
  • 2011-04-16
相关资源
最近更新 更多