在用matlab中plotyy命令作双纵坐标图时遇到下列问题:(1)当采用for循环时
for x=0:0.1:20
y1 =200*exp(-0.05*x)*sin(x)
y2 = 0.8*exp(-0.5*x)*sin(10*x)
plotyy(x,y1,x,y2)
hold on
end
图像为:
(2)当采用数组化编程时
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
plotyy(x,y1,x,y2)
图像为:
问题:
(1)为什么会出现这种差别
(2)如果我用for循环编程想得到图2所示的效果,应该如何操作
附言:这只是个简单的例子,笔者编程能力有限,现编一个较复杂的程序,采用的是for循环做的,数据处理时想用双纵坐标图
能不能只通过设置坐标轴格式,就能达到第二个图所示的效果,谢谢
追答显然不能,逐点添加的话当前点不会与之前的点连接(连接关系无法确定)。
鉴于x递增,你可以选择
axes,hold on
y1 = []; y2 = [];
for i=1:len
y1 =[y1;200*exp(-0.05*x(i))*sin(x(i))];
y2= [y2;0.8*exp(-0.5*x(i))*sin(10*x(i))];
plotyy(x(1:i),y1,x(1:i),y2)
end
hold off
这样实际上是在不断重复的画,最先plot的点将被画i次。