24小时热门版块排行榜    

查看: 2569  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhuofp13

新虫 (小有名气)

[求助] Matlab三维制图问题(f=f(x,y,z)) 已有2人参与

函数f=f(x,y,z),x,y,z是三维坐标轴,要画的图中要以x,y,z为三个轴,尝试用surf(x,y,z,f),出来的表面图是用颜色表示了f的大小,为了更直观一些,能不能同时通过表面起伏来表示f大小呢?
结合之前热心朋友的帮助,写了一个小的测试程序:
[theta,phi]=meshgrid(linspace(0,pi,50),linspace(0,2*pi,50));
z=cos(theta);
x=sin(theta).*cos(phi);
y=sin(theta).*sin(phi);
f=-1*((x.*y).^2+(y.*z).^2+(z.*x).^2);
surf(x,y,z,f)
出来的图:


出来的图  



求助啊  谢谢

Matlab三维制图问题(f=f(x,y,z))
test.jpg


Matlab三维制图问题(f=f(x,y,z))-1
实际需要的图.jpg
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

狂疯业火之理

银虫 (正式写手)

引用回帖:
4楼: Originally posted by zhuofp13 at 2015-02-01 20:39:40
函数应该是g=-0.1p^4+0.05p^6+0.125p^8  其中x=psin(theta).*cos(phi);
y=psin(theta).*sin(phi);
z=pcos(theta);
=meshgrid(linspace(0,pi,50),linspace(0,2*pi,50));
p=0:0.01:0.4;...

换用surf(x,y,f,f)试试吧,surfxyz就是球面,你的参数方程就是那样的

[ 发自小木虫客户端 ]
人外有人,天外有天。
5楼2015-02-01 21:48:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

狂疯业火之理

银虫 (正式写手)

f是颜色,你那个xyz是纯球面,确定xyz没错吗?

[ 发自小木虫客户端 ]
人外有人,天外有天。
2楼2015-02-01 19:53:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

狂疯业火之理

银虫 (正式写手)

Xyz上面是明显的球面,按你的程序输出的图是对的,你可以仔细看看xyz的函数,好好编一下,祝好运。

[ 发自小木虫客户端 ]
人外有人,天外有天。
3楼2015-02-01 19:57:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhuofp13

新虫 (小有名气)

引用回帖:
3楼: Originally posted by 狂疯业火之理 at 2015-02-01 19:57:10
Xyz上面是明显的球面,按你的程序输出的图是对的,你可以仔细看看xyz的函数,好好编一下,祝好运。

函数应该是g=-0.1p^4+0.05p^6+0.125p^8  其中x=psin(theta).*cos(phi);
y=psin(theta).*sin(phi);
z=pcos(theta);
[theta,phi]=meshgrid(linspace(0,pi,50),linspace(0,2*pi,50));
p=0:0.01:0.4;
4楼2015-02-01 20:39:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见