【问题标题】:how to get tag of a clicked rectangle in matlab如何在matlab中获取点击矩形的标签
【发布时间】:2013-11-19 11:39:34
【问题描述】:

我在图中有一组矩形。我通过 rect_tag 索引标记它们,并且我想获得一个具有单击矩形标签的数组(或单元格数组)。 矩形由以下方式生成:

for i_nf=1:nRects
    rect_tag = ['rectangle_num_' num2str(i_nf)];
    rectangle('Position', rectanglesMat(i_nf,:), 'Tag', rect_tag, 'ButtonDownFcn', {@add_rectangle});
end

如何定义 add_rectangle 函数来完成此操作?

【问题讨论】:

  • 你在纠结什么?回调函数的第一个参数是矩形本身。您大概知道如何获取标签,只需将其添加到某个范围更大的列表中。
  • 好吧,显然,我失败了。你能提供一个简单的工作示例吗?你[会赢得我永远的感激。

标签: matlab graphics function-handle


【解决方案1】:

谢谢,@sebastian。它工作了。 为了将来参考,这是有效的:

function add_rectangle(src, event)
    a = get(src,'Tag')
   if evalin('base', 'exist(''tag_list'',''var'')')
      tag_list= evalin('base','tag_list');
   else 
      tag_list= {};
   end
   class(tag_list)
   tag_list{end+1} = {a}; % add the point
   assignin('base','tag_list',tag_list); % save to base
end

【讨论】:

  • 你去 :>。请注意,您也可以使用tag_list{end+1} = a;tag_list(end+1) = {a};。您的方法将每个标签存储在一个 1x1 单元格中,这可能不是必需的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
相关资源
最近更新 更多