Установите пределы осей в графическом интерфейсе Matlab

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

Чтобы установить пределы осей, но это не работает, как хотелось бы, и я не уверен, как действовать дальше.

Заранее благодарю за любую помощь!


person lindziwiggins    schedule 19.05.2015    source источник
comment
Я решил проблему, поместив соответствующую строку в цикл for.   -  person lindziwiggins    schedule 19.05.2015


Ответы (1)


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

Eg:

set(handles.axes,'XLimMode','manual','YLimMode','manual');
person Benoit_11    schedule 19.05.2015
comment
Или используйте xlim, ylim, axis - person A. Donda; 19.05.2015