2015-05-19 6 views
1

Я пытаюсь смоделировать график реального времени сигнала ЭКГ с использованием графического интерфейса MATLAB. В целях тестирования я пытаюсь реализовать синусоидальную волну, которая выглядит как в реальном времени. Я использую 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

Я решил проблему путем размещения линии в пределах вопроса для цикла. – lindziwiggins

ответ

2

Установить ...LimModeproperties на руководство при создании осей; таким образом, они не должны меняться, когда новые данные являются сюжетом. По умолчанию они установлены в auto.

Например:

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

Или используйте 'xlim',' ylim', 'axis' –