在Matlab GUI

时间:2015-05-19 12:50:27

标签: matlab plot real-time axes limits

我正在尝试使用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])

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

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

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

例如:

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