作了一个循环命令,如何用matlab画出曲线?
作了一个循环命令,如何用matlab画出曲线?
for x=5:20
y=P1.*x+P2+P3./x+P4./x^2+P5./x^3-2.*P6.*x.*(1-B2./x^3)^0.5
end
如何用matlab画出关于x、y的曲线,用plot(x、y)只画出了一个点
问答/288℃/2024-08-23 23:44:53
优质解答:
figure
hold on
for x=5:20
y=P1.*x+P2+P3./x+P4./x^2+P5./x^3-2.*P6.*x.*(1-B2./x^3)^0.5
plot(x,y)
end
hold off
上面程序既可以实现,matlab中的plot这个命令 是根据figure属性中的Nextplot来选择替换NextPlot = replace还是保留原来的点并增加新的点(NextPlot = add),默认情况下使用完一次plot后Nextplot都变成replace,如果想保留原来的点并增加新的点那么一开始就得将NextPlot始终设置成add,matlab考虑到会有这样的情况发生 所以设置了一个直接语句 hold on使得可以逐次使用plot.
在你画完点之后 记得 hold off 哦 这个看似可以不要的语句 有的时候 却十分必要 ,至于怎么使用图形句柄来控制figure的属性 那得需要你自己好好学习了.不太难
PS(多次调用plot以点绘线其实是不划算的 (在时间复杂度上) 尽可能用矩阵的形式来做你想做的事)
上述问题 其实是x是一个矩阵,那么通过矩阵的运算必定可以得到相应的矩阵y,然后直接用一次plot(x,y),即可以将整个曲线画出来.
当然如果你想做演示程序的话 那么 逐点描绘是必要的,并且你还得自己添加一个延迟函数 pause(t);%% t是数字 单位是s 表示延迟多少秒
再问: 非常感谢,不过我还想问一下,我画出的是点,能将这些点连成线吗?
再答: 能的 需要设置一个记录数据 因为不好表达 我就将上面程序改给你看看吧 自己回头好好揣摩揣摩 figure hold on x=5; y=P1.*x+P2+P3./x+P4./x^2+P5./x^3-2.*P6.*x.*(1-B2./x^3)^0.5 CurtPtx=x;CurtPty=y;%%当前点的坐标 for x=6:20 y=P1.*x+P2+P3./x+P4./x^2+P5./x^3-2.*P6.*x.*(1-B2./x^3)^0.5 NewPtx=x;NewPty=y;%%新点的坐标 plot([CurtPtx NewPtx],[CurtPty NewPty]); CurtPtx=NewPtx;CurtPty=NewPty;%%用新点的坐标代替当前点的坐标向前递推 end hold off
我来回答
猜你喜欢
- 查赤壁赋
- 解比例的应用题汶川修一条长2040千米的公路,已修好的长度与未修的长度比是7:3,还剩多少米没修.1.5:4=12:32
- 《孢子》里太空阶段怎么找地球?
- 英语翻译1.We all admire him for the way he saved the children ou
- 求大神帮忙:两句简单的英文翻译
- 奇数和偶数用a、b、c、d写出下面一组等式:a×b×c×d-a=1997a×b×c×d-b=1799a×b×c×d-c=
- 物理题(关于眼睛和眼镜)
- 太阳的近义词要两个字的!急!
- Terrisa didn`t feel very weel yesterday.(同义句改写)
- will什么时候是情态动词什么时候做助动词什么时候做实意动词