我在matlab中使用GUI编写程序代码。我有一些名为" axes1" - 显示我的情节(x,y值的简单图)。
我希望在线上点之后显示Y轴的值。最好是它会动态显示 - 在移动curosor后,值会自动显示新的指向值
我看到了一些关于此的教程,但我无法将他们的技巧应用于GUI编程。
答案 0 :(得分:1)
这是一个非常简单的示例,您可以使用datacursormode这一交互式光标,它可以让您选择图上的点并获取它们的坐标。您可以轻松自定义示例并将坐标存储在变量中等等,但我会让这部分由您完成:)。
以下是带注释的GUI代码。您可以复制/粘贴到新的.m文件中进行测试和播放。 GUI只是一个显示随机数据的轴和一个可用于切换datacursormode
的激活(即打开或关闭)的复选框。
function DispYData
clear
clc
global dcm_obj
%// Create figure and ui controls
hFig = figure('Position',[200 200 500 500]);
handles.Axes = axes('Position',[.2 .2 .7 .7]);
plot(1:20,rand(1,20));
%// Create datacursor. Disable for the moment.
dcm_obj = datacursormode(hFig);
set(dcm_obj,'Enable','off')
handles.checkbox = uicontrol('Style','check','Position',[20 50 120 20],'String','Activate datacursor','Callback',@(s,e) GetPos);
guidata(hFig,handles)
function GetPos
%// If checked, activate datacursor mode
if get(handles.checkbox,'Value')
set(dcm_obj,'Enable','on')
%// If uncheck, disable.
else
set(dcm_obj,'Enable','off')
end
guidata(hFig,handles)
end
end
启用datacursormode并选择曲线上的点后,GUI的示例屏幕截图:
玩得开心!