如何更改多个 freqz 图的颜色?

How to change the color of multiple freqz plots?

我在 MATLAB 中使用 "hold" 和 "freqz" 在同一图上绘制多个频率响应。有什么方法可以调整每个图的颜色,以便我可以识别哪个图是哪个图?现在看起来一团糟。

Freqz 似乎不像 "plot" 那样支持更改绘图的颜色。

确实有点棘手,因为freqz没有提供句柄。

b = fir1(80,0.5,kaiser(81,8));
freqz(b,1); hold on
c = fir1(80,0.9,kaiser(81,8));
freqz(c,1); hold on

但您可以使用 findall:

获取它们
lines = findall(gcf,'type','line');

然后照常给线条上色:

lines(1).Color = 'red'
lines(2).Color = 'green'
lines(3).Color = 'red'
lines(4).Color = 'green'

或 2014b 之前的 Matlab 版本:

set(lines(1),'Color','red')
set(lines(2),'Color','green')
set(lines(3),'Color','red')
set(lines(4),'Color','green')

它适用于所有LineSpec properties