在 Matlab GUI 中设置轴限制

Set axes limits in Matlab GUI

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

要设置轴限制,但它没有像我希望的那样工作,我不确定如何从这一点开始。

在此先感谢您的帮助!

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

例如:

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