matlab中如何利用matlab绘制一个三维立体图?

如上图,其中a、b、β1、β2、tmax均已知,其中y的取值范围是和x相关的。请问一下大佬,类似这上面的图形怎么绘制啊?最终图应该是第三张图中那样。forx=-170:1... 如上图,其中a、b、β1、β2、tmax均已知,其中y的取值范围是和x相关的。请问一下大佬,类似这上面的图形怎么绘制啊?最终图应该是第三张图中那样。
for x=-170:1:170
y=-50*sqrt(1-(x).^2/170^2):1:50*sqrt(1-(x).^2/170^2);
z =40*(((1-(x).^2/170^2).^1.56)+eps).*((1-(y).^2/(50^2*(1- (x).^2/170^2))).^2.36+eps);
plot(y,z);
hold on
end我按照上面的写法绘出来是二维的,三维的怎么绘呢,请教大神
展开
 我来答
lhmhz
高粉答主

2021-01-20 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7257 获赞数:16926

向TA提问 私信TA
展开全部

matlab中如何利用matlab绘制一个三维立体图?运行题主给出的代码不能出三维图形,其原因:

1、使用命令错误,绘制三维图形的函数,应该用plot3、surf、mesh等函数。

2、没有根据下列不等式条件来取值,即

-a≤x≤a;-b*sqrt(1-x^2/a^2≤y≤b*sqrt(1-x^2/a^2)

问题的意思是,要绘制当x为任意值范围【-x0(i),x0(i)】时对应的y值范围【y1(i),y2(i)】的三维图形。

解决方案:

1、取x0=linspace(-a,a,100)中的任意值,即x0(i)

2、取y0=y1,y2中的任意值,即y1(i),y2(i)

这里,

y1=-b*sqrt(1-x0.^2/a^2);

y2=b*sqrt(1-x0.^2/a^2);

3、在x【-x0(i),x0(i)】和y 【y1(i),y2(i)】之间,进行划分若干个等份,即

x=linspace(-x0(i),x0(i),100);

y=linspace(y1(i),y2(i),100);

4、使用 meshgrid函数,对(x,y)数据网格化,即

[X,Y] = meshgrid(x,y);

5、计算Z值,即

Z =40*(((1-X.^2/170^2).^1.56)).*((1-Y.^2/(50^2*(1- X.^2/170^2))).^2.36)

6、使用plot3函数绘制三维曲线,即

plot3(X,Y,Z)

7、使用hold on命令,将任意的X,Y,Z对应的图形重复绘制在同一图窗中。

8、完善代码后运行可以得到想要的图形。详细代码可以另给。

追问

非常感谢大佬的解答,我用你这种方式对了,但是可不可以用plot来画呢,毕竟其实我每一次循环都是在x某一位置处画出z=f(y)的图像,只涉及到二维操作,但因为是在第三维度上面扩展,所以有了立体的效果,如下面左右两个图,右边很明显是用plot画的


Frederic53
2021-01-19 · TA获得超过1565个赞
知道小有建树答主
回答量:607
采纳率:85%
帮助的人:170万
展开全部
3D plot在Matlab里面有很多种。最简单的是3D line plot:
在上面的例子里 如果变量x y z都是一一对应的(x的data长度和y z都相同)那么可以直接用plot3(x,y,z)来plot
如果只想有点还可以scatter3(x,y,z)
当然如果需要的三维图是带有surface或者patch类元素的 可以使用surf 或是其他patch类函数。
追问

现在这样确实是将二维的变为三维了,我其他的都没变,只是将你说的plot改为plot3,但是图三的效果就是弄不出来[哭了]

现在这样确实是将二维的变为三维了,我其他的都没变,只是将你说的plot改为plot3,但是图三的效果就是弄不出来[哭了]

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
matlab爱好者
2021-01-26 · matlab编程与科研资料分享,欢迎关注!
matlab爱好者
采纳数:16 获赞数:28

向TA提问 私信TA
展开全部

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式