用matlab绘图

绘制如下函数图象:y=ax/(1+(ax/b)^c)^(1/c)+d,其中a、b、c、d为常数,如a0.5,b10,c1.8,d-1.5,其中有若干实点(x,y),看上去就像通过这些点描绘出曲线一样,将2条或更多这样的曲线绘制于同一图中,曲线形状类似,只有位置高低差异,其中的点采取不同样式,如实心和空心,有根据不同曲线中的点的样式的图例,就和excel中做的图一样,图颜色为黑白,谢谢!!

第1个回答  2012-12-11
>> x=[20,50,100,200,400,600,800,1000,1200,1600,2000];
>> a=0.5;b=1;c=1.8;d=1.6;
>> y=a*x./(1+(a*x/b).^c).^(1/c)+d;
>> a=0.7;b=12;c=2;d=1.8;
>> y1=a*x./(1+(a*x/b).^c).^(1/c)+d;
>> plot(x,y,'k.-')
>> hold on
>> plot(x,y1,'k*:')
>> box off
>>
看看这个是不是你所想要的效果,输入不同的系数,得到不同的y值,然后每条曲线分别绘制就行了,设置每条曲线的属性。追问

这个比较像,要加图例怎么加呢,就像下面那个回答加的那种

追答

示例一下:(下面是在上面数据基础上添加的)
1.直接添加图例可以这样表示
>> h=legend('y=a*x^2+b','y=c*x^3+d'); %随意编两个式子,上面那个太麻烦
>> legend boxoff %去掉图例边框

2.若是想在曲线旁边指示,可以像下面的那样添加text文本
>> text(600,3.5,'y=a*x^2+b'); %text里面的数据是文本框的位置坐标
>> text(600,13,'y=c*x^3+d');
具体想修饰漂亮一点,可以查看text属性,里面有很多可以修饰的

3.x,y轴坐标
xlabel('x');
ylabel('y');

追问

谢谢!!麻烦再问下如何设置坐标轴的实际长度,即看上去的长度,还有如何设置坐标轴格式(就如excel中坐标轴格式设置那样),如最大值、最小值、刻度单位,以及如何使横纵轴交与0点的位置问题等等。另外,曲线的样式,点好像通过那个plot语句,线(图中的实线或虚线)如何设置呢,如果再同一图中添加3条或更多曲线,如何添加语句。最后再问下,能否将曲线改为平滑的那种,不是那种2点直线相连的折线的形式。万分感谢!!!

本回答被提问者和网友采纳
第2个回答  2021-05-22

本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!

第3个回答  2012-12-11
亲,这个可以吗?因为你的函数值大,间隔有点不好处理,我就举个简单例子你参照
x=0:10;
y1=2*(x.^2)+3*x+4;
y2=x.^2+5*x-6;
plot(x,y1,x,y2)
xlabel('Variable X');
ylabel('Variable Y');
text(1,7,'y1=2*(x.^2)+3*x+4');
text(4,8,'y1=x.^2+5*x-6');
legend('y1','y2')
仿真结果

额额,图形放不上去,你自己仿真看图吧希望对你有帮助哦~~^_^追问

图例是哪句话加的呢,图的话,不太像啊。。。

追答

legend那句,你可以根据自己的需要改变!希望能帮助你

第4个回答  2012-12-10
没明白啥意思,都没给数据,直接plot吧,在加加gtext()什么的就是了追问

可以说是在一张图上绘制两条曲线,公式如上,曲线1中a=0.5 b=10 c=1.8 d=1.6,曲线2中a=0.7 b=12 c=2 d=1.8。另外还需要标出两条曲线上当x=20、50、100、200、400、600、800、1000、1200、1600、2000时的点。两条曲线标出的点样式不同(比如一条上的点为空心,另一条为实心)。可以的话,最好有图例,即每条曲线分别表示什么(这里一条曲线的名称为一号,另一条名称为二号),整个图像都是黑白的,就这样,谢谢!!

第5个回答  2020-05-08
相似回答