gpt4 book ai didi

matlab - 在matlab中打开数据光标模式时如何获取点击点的坐标?

转载 作者:行者123 更新时间:2023-12-02 04:56:10 24 4
gpt4 key购买 nike

我正在尝试在我不熟悉的 Matlab 中设计和编程 GUI。

基本上,我有两个组件,即“轴”和“列表框”。坐标区中有一个 RGB 图像。我打算将选定的点添加到列表框中。

下面的代码工作得很好,但我想让它在数据游标打开时工作。

如何让它在数据游标打开时工作?

% 100x100x3 RGB image
RgbImage = randi(100, 100, 100, 3);

% Draw the image
axesHandle = axes();
imageHande = imagesc(RgbImage);
axis image;

% ButtonDownFc
set(imageHandle, 'ButtonDownFcn', @imageButtonDownFcn);
function imageButtonDownFcn(hObject, eventdata)
p = get(gca, 'CurrentPoint');
x = floor( p(1) );
y = floor( p(2) );

% Some code to add the [x y] to the list box
end

编辑 1:问题是当数据游标打开时函数 imageButtonDownFcn 没有被触发。

最佳答案

我将从为数据游标创建一个自己的更新函数开始

% in your main .m file    
hdt = datacursormode;
set(hdt,'UpdateFcn',{@labeldtips,hdt});

然后你可以像这样在那个函数中得到位置:

function output_txt  = labeldtips(obj,event_obj,hdt)
% Display an observation's Y-data and label for a data tip
% obj Currently not used (empty)
% event_obj Handle to event object

dcs=hdt.DataCursors;
pos = get(dcs(1),'Position'); %Position of 1st cursor

output_txt{1} = ['X: ', num2str(pos(1))];
output_txt{2} = ['Y: ', num2str(pos(2))]; %this is the text next to the cursor
end

然后你在pos中有了位置,你可以添加%Some code to add the [x y] to the list box again

关于matlab - 在matlab中打开数据光标模式时如何获取点击点的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22141770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com