Как построить несколько точек на осях Matlab?

Используя ginput (или ginputax), я прошу пользователя щелкнуть по оси 10 раз (для коррекции базовой линии спектра).

Мои оси основаны на GUIDE GUI.

По сути, это начинается так

plot(handles.axes_preview, ppm, xf_base, 'w-', 'LineWidth', 2);

spline_ppm = ginputax(handles.axes_preview, 10);

Я хотел бы отобразить каждый клик (как ro) по мере их ввода, чтобы у пользователя была некоторая обратная связь о том, где они нажимали.

Есть идеи, как это закодировать?


person pepe    schedule 25.12.2013    source источник
comment
как только вы получите [x,y] от ginput, в следующей строке постройте их, а в следующей строке поместите pause(0.001).   -  person Autonomous    schedule 26.12.2013


Ответы (1)


Как насчет простого цикла?

axis(handles.axes_preview); %// make handles.axes_preview the current axis
hold on
for ii = 1:10
    coords(ii,:) = ginput(1);
    plot(coords(ii,1),coords(ii,2),'ro')
end

Кроме того, вы можете добавить

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

в начале, чтобы предотвратить автоматическое изменение масштаба оси при вводе точек пользователем.

person Luis Mendo    schedule 25.12.2013
comment
спасибо - с небольшими изменениями это сработало блестяще - person pepe; 26.12.2013