3

在 Matlab 2011b 中,我有一个多维矩阵,最初将其呈现为 2 维的二维图。我希望用鼠标左键使标记可点击。单击标记会绘制由单击值切片的其他维度的新图形。

这个问题与Matlab有关:绘制点并使它们可单击以显示有关它的信息,但我想运行一个脚本,而不仅仅是弹出有关单击点的数据。

谷歌搜索暗示ButtonDownFcn可以使用,但我发现的示例需要手动绘制每个点并附加一个处理程序,如下所示:

hp = plot(x(1), y(1), 'o');
set(hp, 'buttondownfcn', 'disp(1)');

由于主图中有许多标记,是否可以将处理程序附加到整个曲线并调用子图绘图函数并单击标记的索引(首选)或坐标?

4

1 回答 1

3

这是您需要的想法,如果我了解您的要求,应该可以帮助您入门。

在这种情况下,当您选择一条曲线时,它将在底部子图中绘制它并保留颜色。

function main
subplot(211)
h = plot (peaks);

set (h,'buttondownfcn', @hitme)
end

function hitme(gcbo,evendata)
subplot (212)
hold on;

col = get (gcbo,'Color');
h2 =  plot (get (gcbo,'XData'),get (gcbo,'YData'));
set (h2,'Color', col)

pt = get (gca, 'CurrentPoint');
disp (pt);
end

您可以通过简单地编写函数get(gcbo)来探索您的 get 选项。hitme

于 2012-04-20T19:26:18.453 回答