Контурные графики - Datacursor - Как я могу принять значение уровня?
Привет, я написал функцию, чтобы я мог редактировать мои данные в контуре. Я могу занять позицию, но проблема в том, что я также не могу редактировать уровень (результат).
Я могу занять позицию, как это 'pos = get(event_obj,'Position');'
Есть ли какая-либо команда в Matlab, что я могу взять уровень (результат)?
1 ответ
Решение
Хорошее решение заключается в следующем:
После контурного сюжета пишем так:
dcm = datacursormode(gcf);
datacursormode on;
set(dcm, 'updatefcn',@perso_datacursor)
Затем мы создаем эту функцию:
function output_txt = perso_datacursor( obj,event_obj)
dataIndex = get(event_obj,'DataIndex');
pos = get(event_obj,'Position');
h=get(event_obj,'Target');
X=get(h,'XData');
Y=get(h,'YData');
Z=get(h,'ZData');
idx_x=find(X==pos(1));
idx_y=find(Y==pos(2));
Level=Z(idx_y,idx_x);
output_txt = {[ 'X',num2str(pos(1),4)],...
[ 'Y',num2str(pos(2),4)],...
[ 'Z',num2str(Level)]};
end
И у нас есть также уровень (результат) контура