我正在尝试使用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])
设置轴限制,但它不能按照我的意愿工作,我不知道如何从这一点开始。
提前感谢您的帮助!
答案 0 :(得分:2)
在创建轴时将...LimMode
properties设置为手动;这样他们就不应该在新数据绘图时改变。默认情况下,它们设置为auto
。
例如:
set(handles.axes,'XLimMode','manual','YLimMode','manual');