我为我的传递函数绘制了波德图,我想知道是否有某种方法可以插入水平线或垂直线来显示增益/相位角或频率的特定值?
我发现使用以下代码我可以在相位角图上绘制一条水平线:
x = linspace(10^-1,10^2,100);
for bleh = 1:length(x)
y(bleh) = -30.9638;
end
bode(num, den)
hold on
plot(x,y)
但这似乎并不适用于增益图,也不适用于垂直线的有限知识(以及对我有意义的唯一方法)。我试过了:
y1 = get(gca,'ylim');
w1 = 1.2;
bode(num, den)
hold on
plot(x,y,[w1 w1],y1)
但是我只得到了上面代码中的一条水平线。 这有可能吗?
(使用R2017a,如果重要的话。)
答案 0 :(得分:2)
我不确定我是否理解你的问题,不过,我提出以下建议。
如果图中有多个axes
,就像博德图的情况一样,如果要在特定axes
(或全部)中添加内容,则必须指定,在调用plot
的句柄axes
时。
因此,要在博德图中添加行,您首先要确定两个handles
中的axes
:您可以至少以两种方式执行此操作:
findobj
函数:ax=findobj(gcf,'type','axes')
Children
ax=get(gcf,'children')
获得handles
的{{1}}后,您可以使用axes
和XLim
来限制要添加的行的范围
在下面的例子中,我使用上面提出的方法在每个图中添加两行。
水平线和垂直线都添加在X轴和Y轴的中间点(可能这一点没有相关含义,但它只是一个例子)。
YLim
希望这有帮助,
Qapla'