2015-05-19 91 views
1

我想模拟使用MATLAB GUI的ECG信号的实时绘图。出于测试的目的,我试图实现一个正弦波,如同实时一样。我正在使用一个GUI,其中一个按钮开始绘制正弦波,一组标记为'axes1'的轴。下面的代码是从回调函数提取的启动按钮:在Matlab GUI中设置轴极限

%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

我已经放置有问题的行内的for循环解决了这个问题。 – lindziwiggins

回答

2

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

如:

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

或者使用'xlim','ylim','axis' –