在matlab中确定“gcf”的值

时间:2011-05-26 13:48:58

标签: matlab matlab-figure

愚蠢的,简单的问题 - matlab中gcf的值总是会成为活动数字的数字?即,如果我正在处理图5,gcf总是会返回5吗?

3 个答案:

答案 0 :(得分:8)

GCF返回“当前数字”的句柄。这始终是活动图的图号。但是,如果在此期间单击其他图形,则其他图形将变为活动状态。因此,如果你已经知道你正在使用什么数字,因为你要么通过调用figure(5)强制句柄为5,要么因为你通过调用fh=figure;来捕获变量中的句柄,所以更安全只要你想修改数字就可以使用句柄代替gcf,以避免无意中使另一个数字处于活动状态。

此外,如果当前没有数字打开,gcf将打开一个新数字。

答案 1 :(得分:5)

这比简单的“是”或“否”答案稍微复杂一些。 current figure 的句柄通常与图窗口左上角显示的数字匹配,但只有'NumberTitle' figure property设置为{{1时才会显示此数字(默认)。

另一个问题是数字句柄不能保证是整数。有'IntegerHandle' figure property确定为该图创建的句柄是整数还是不可重用的实数。如果此属性设置为'on',则会获得非整数的句柄值,因此您打开的第一个数字的句柄为1.例如:

'off'

该数字相应编号:

enter image description here

请注意,当显示图号和句柄时,会有一些数字的四舍五入。图形窗口仅显示小数点后6位数。很明显,当你change the format of the Command Window显示更多小数位时,你正在处理浮点数:

>> hFigure = figure('IntegerHandle','off')  %# The only window open

hFigure =

  173.0040

在这种情况下,显示的图号和图形句柄略有不同。

答案 2 :(得分:3)

是的,gcf将返回当前所选(或活动)数字的句柄。从文档中,

  

H = GCF返回当前数字的句柄。目前       图是PLOT等图形命令的窗口,       TITLE,SURF等将绘制。

但请记住:

  

目前的数字不一定是最重要的数字       屏幕。

使数字成为“当前”的一种方法是:

  

点击图中包含的uimenus和uicontrols,       或点击图形的绘图区域导致       想成为现在。

另一种方法是使用数字句柄。即,如果您将该数字称为h=figure;,那么figure(h)将使其成为当前数字。