想要获得当前轴的标记

时间:2016-12-25 03:10:35

标签: matlab

我想通过Matlab GUIDE获取GUI中当前轴的标记。

以下代码返回一个空矩阵:

handle=gca;
get (handle,'tag') 

2 个答案:

答案 0 :(得分:0)

获得空矩阵的可能原因可能是因为GUI HandleVisibility和/或figure的属性axes设置为'off`。

为了获得Tag对象的axes属性,以及GUI中任何其他对象的属性,HandleVisibility属性必须为“on”。< / p>

一旦该属性为on,有几个选项可以在GUI回调中获取Tag个轴:

使用get函数

% Get the current axes tag
get(gca,'tag')

使用dot notation

% Get the current axes with the "dot notation"
c_ax=gca
c_ax.Tag

如果您的GUI中有多个axes,您可以使用findobj函数获取所有axes个hanldes,然后,您可以使用{{1} }循环获取for

Tag

答案 1 :(得分:-1)

这是正常的,默认情况下,Tag没有值(它返回'')。如果你想要别的东西,你必须将它的值设置为......

P.S。而不是获取和设置,在matlab 2016中,您可以通过点访问gca属性。

编辑:

首先,您需要为每个子图像或子图设置一个标记:

for (range of subplots)
   subplot(m,n, number) % m and n are constants
   set(gca,'Tag',num2str(number));
end

这是代码的一个很好的答案:

https://de.mathworks.com/matlabcentral/answers/172565-how-to-get-the-subplot-number-by-clicking-on-it