matlab - fvtool生成的数字亲子关系破裂?

标签 matlab matlab-figure

为了重现我面临的问题,我将使用 fvtool 文档中的示例之一的稍微修改版本。 :

b1 = firpm(20,[0 0.4 0.5 1],[1 1 0 0]); 
fvtool(b1, 1, 'Analysis', 'freq');

上面的代码应该生成下图:

Figure generated by fvtool

我正在尝试独立操纵您在该图中看到的两条线的属性(相位线和幅度线)。我可以轻松修改幅度线的属性:

h = findobj(gcf, 'Tag', 'magnitude_line');
set(h, 'Color', 'Red');

但是,我不能对相位线做同样的事情。以下任何命令都仅返回空数组:

h = findobj(gcf, 'Tag', 'phasez_line')
h = findobj('Tag', 'phasez_line')
h = findobj(0, 'Tag', 'phasez_line')

最佳答案

我刚刚找到了我的问题的答案,这实际上是相当明显的。似乎 fvtoolfvtool_axes_2 轴(它是相线的父级)的 HandleVisibility 属性设置为 callback code>,因此,使用 findobj 时找不到此类对象。使用 findall 问题得到解决,即:

h = findall(0, 'Tag', 'phasez_line');

类似地,您可以使用allchild来查找此类隐藏句柄,即:

parentAxes = findall(0, 'Tag', 'fvtool_axes_2');
% This returns empty
intersect(parentAxes, get(get(parentAxes, 'Parent'), 'Children'))
% But this returns a handle to the fvtool_axes_2 axes
intersect(parentAxes, allchild(get(parentAxes, 'Parent')))

关于matlab - fvtool生成的数字亲子关系破裂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12600140/

相关文章:

matlab - 如何在matlab中的散点图上显示颜色渐变?

当打印为 .eps 时,Matlab 提供光栅化图形而不是矢量图形

matlab - matlab图形可以有垂直分隔线吗?

matlab - 如何将 "tutorial message div"添加到数字中?

matlab - 在图像上写数字

matlab - Matlab 中的二维线渐变颜色

c - 如何将稀疏矩阵从 MATLAB 传递到共享库

matlab - 如何找到向量中 n 个最小元素的索引

class - 需要有关 Matlab 多类分类器的帮助

matlab - 具有不同颜色图的子图 matlab