登录论坛

查看完整版本 : [求助]分行输出、多曲线成图和曲线逐一标注


big1980
2008-12-30, 14:08
两个新手学习碰到新问题,走过路过的帮忙看看,出出注意
% 函数f=2*x.^2-sqrt(x)+m*x
% 想得到以下成果:
% 第一步:得到不同m值所对应的f (有无字符串无所谓);
% 第二步:多条f曲线图,最好是不同颜色和线形
% 对各条曲线分别标注对应的m值;
% ----------------------------------------------
% 程序1:可以分行显示,可是不知道怎么成图
for m=0:5:20;
x=-1:0.1:10;
f=2*x.^2-sqrt(x)+m*x;
qq=['f',num2str(m),'=','2*x.^2-sqrt(x)+m*x'];
eval(qq)
end
plot(x,f)
%
% ---------------------------------------------
% 程序2:只能生成1条曲线,而且不知道对应的m值
for m=0:5:20;
x=-1:0.1:10;
f=2*x.^2-sqrt(x)+m*x;
end
plot(x,f)

big1980
2009-01-01, 08:11
x=-1:0.1:10;
m=[0,5,10,15,20];
for ii=1:5
f=2*x.^2-sqrt(x)+m(ii)*x
plot(x,f);
hold on
end
% 又这样试一下
% 可以多曲线成图
% 但产生错误信息
% Warning: Imaginary parts of complex X and/or Y arguments ignored.
% 还是不知道如何设置各曲线颜色、线型和标注

big1980
2009-01-01, 08:32
% 这样岂不是很麻烦,m值再大呢?
% matlab是不是有更好的解决办法
% 新手,见笑
x=-1:0.1:10;
m=0
f=2*x.^2-sqrt(x)+m*x
plot(x,f,'b-');
hold on
x=-1:0.1:10;
m=5
f=2*x.^2-sqrt(x)+m*x
plot(x,f,'r-');
hold on
m=10
f=2*x.^2-sqrt(x)+m*x
plot(x,f,'y-');
hold on
x=-1:0.1:10;
m=15
f=2*x.^2-sqrt(x)+m*x
plot(x,f,'g-');
hold on
m=20
f=2*x.^2-sqrt(x)+m*x
plot(x,f,'b--');

big1980
2009-01-03, 08:38
% 高手都放假了吗?
% 近似解决;
% 中文论坛相关问题参考;
% 唉...
x=-1:0.1:10;
m=[0 5 10 15 20];
for ii=1:length(m)
f(ii,:)=2*x.^2-sqrt(x)+m(ii)*x;
end
plot(x,f);

big1980
2009-01-03, 08:42
% 只差标注
% 逐一加?
x=-1:0.1:10;
m=[0 5 10 15 20];
for ii=1:length(m);
plot(x,2*x.^2-sqrt(x)+m(ii)*x);
hold on;
end