我在做matlab仿真时需要把循环生成的图画在一张图上,并且用不同的颜色来表示曲线便于对比。总结了一下想出了2种方法,
1. 将每个循环中生成的数据分别存起来,等循环结束后使用plot(sys1, sys2, ...)来同时画多张图;
2. 将曲线的颜色、线型写成矩阵,然后在每个循环中利用矩阵变量来使每张图具有不同的颜色等属性。
我实践了第二种方法,Matlab代码如下:
a_color = ['r', 'g', 'b', 'y', 'c', 'm', 'k']; %定义图形颜色
a_line_point = ['.', 'o', 'x', '+', '*', 's', 'd']; %定义点的形状
%a_line_style = ['-', ':', '-.', '--']; %定义线形,(none) no line
count=4:2:10;
for idx = 1 : length(count)
p3 = count(idx);
p4 = count(idx);
A_cl = conv([1 4 8], conv([1 p3], [1 p4]));
% 计算控制器C(s)的待定系数
A = [0 0 5 1; 0 5 -5 -4; 5 -5 0 -5; -5 0 0 0];
B = [A_cl(2)+4;A_cl(3)+5;A_cl(4);A_cl(5)];