在 Matlab 2011b 中,我有一个多维矩阵,最初将呈现为其 2 维的 2D 图。我希望用鼠标左键使标记可点击。单击标记将绘制按单击的值切片的其他维度的新图形。
这个问题与 Matlab 有关:绘制点并使它们可单击以显示有关它的信息,但我想运行一个脚本,而不仅仅是弹出有关单击点的数据。
谷歌搜索暗示可以使用ButtonDownFcn
,但我发现的示例需要手动绘制每个点并附加一个处理程序,如下所示:
hp = plot(x(1), y(1), 'o');
set(hp, 'buttondownfcn', 'disp(1)');
由于主图中有许多标记,是否可以只将处理程序附加到整个曲线上,并使用单击标记的索引(首选)或坐标来调用子图绘图函数?
您需要什么的想法,如果我了解您的要求,应该可以帮助您入门。
在这种情况下,当您选择一条曲线时,它将在底部子图中绘制它以保留颜色。
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
您可以通过简单地在 hitme
函数中编写 get(gcbo)
来探索您的获取选项。