自定义多个根轨迹图颜色(灰度刻度)Matlab



我想自定义我的根轨迹图的颜色。我使用for循环来绘制10个根轨迹(在循环中有稍微不同的系统),我希望它们中的每一个都具有不同的灰色阴影。我想使用gray命令来获取一个矩阵来存储RGB数据,然后在rlocus(sys,K,'style')命令中使用这个矩阵(在我的周期的第I次迭代中选择第I行)。不幸的是,该命令要求样式为单元格(例如'g'或'b'),而不是数字向量。

这是我的代码示例:

figure()
hold on
L = [sys1, sys2, ..., sys10];
colors = gray(10);
for i = 0:9
 rlocus (L(i+1), 'Color', colors(i+1, :));
end

rlocus()功能不如plot()功能强大,并且仅支持有限的rlocus(sys, 'b')设置颜色,正如您所注意到的那样。但是,我们可以将其与plot()函数结合使用,以充分利用其功能。

这里我使用[R, K] = rlocus(sys)来返回根轨迹R的值。R的每一行代表一个不同的轨迹。我们可以用plot(R(m, :))绘制根轨迹的1条轨迹,并利用plot()的强度来改变我们希望的颜色。

L = [sys1, sys2, sys3, sys4, sys5, sys6, sys7, sys8, sys9, sys10];
C = gray(numel(L) + 1); % Extra 1 because the last value will be
                        % white and plotting white on white does
                        % not look well :P
figure;
hold on
for n = 1:numel(L)
    [R, K] = rlocus(L(n));
    for m = 1:numel(R)/length(R)
        plot(R(m, :), 'Color', C(n, :));
    end
end
hold off

最新更新