简单的matlab画图问题

来源:百度知道 编辑:UC知道 时间:2024/07/16 09:13:55
比如y=2x+a;
我要画出a=1,2,5,6,7不同a值所对应的曲线。怎么在一个坐标内完成呢
写的具体点

可以这样,画完一个 holdon
继续画。
x=1:1:10;a=1;y=2*x+a;plot(x,y);hold on;
x=1:1:10;a=2;y=2*x+a;plot(x,y);hold on;
x=1:1:10;a=5;y=2*x+a;plot(x,y);hold on;
x=1:1:10;a=6;y=2*x+a;plot(x,y);hold on;
x=1:1:10;a=7;y=2*x+a;plot(x,y);hold on;

调用格式为:

plot(x1,y1,x2,y2,…,xn,yn)

(1) 当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。
(2) 当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。

画图前加命令:hold on,就行了.比如:
x=-5:0.1:5;
y1=2*x+1;
y2=2*x+2;
y3=2*x+5;
y4=2*x+6;
y5=2*x+7;
hold on
plot(x,y1);
plot(x,y2);plot(x,y3);plot(x,y4);plot(x,y5);

a=[1 2 5 6 7];
for i=1:5
x=-5:0.01:5;
b=a(i);
y=2*x+b;
plot(x,y)
hold on
end
hold off

呵呵,这么多人了,慢了一步。

a=[1 2 5 6 7];
x=-5:0.1:5;
for i=1:length(a)
y{i}=2*x+a(i);
plot(x,y{i})
hold on;
end

每plot完一条曲线就用hold on命令,