24小时热门版块排行榜    

查看: 2566  |  回复: 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的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

狂疯业火之理

银虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
引用回帖:
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的应该是(g,k,l,f),其中g是x乘以f的数值,k是y乘以f的数值,l是z乘以f的数值,都是点乘,f不变。这样就不是球面了,当然也可以是乘以f的平方,记得波函数概率密度是那么用的,你可以两种都试试,应该可以。

[ 发自小木虫客户端 ]
人外有人,天外有天。
7楼2015-02-01 22:13:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

狂疯业火之理

银虫 (正式写手)

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的回帖

狂疯业火之理

银虫 (正式写手)

引用回帖:
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的回帖

狂疯业火之理

银虫 (正式写手)

引用回帖:
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;...

一个图按理来说'最多可以表现出四个维度,x,y,z和f,其中颜色是用颜色表现的。

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

zhuofp13

新虫 (小有名气)

引用回帖:
7楼: Originally posted by 狂疯业火之理 at 2015-02-01 22:13:00
我明白那个图怎么做了,你surf的应该是(g,k,l,f),其中g是x乘以f的数值,k是y乘以f的数值,l是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(sin(theta).*cos(phi).f,sin(theta).*sin(phi).f,cos(theta),f)
Undefined variable "cos" or class "cos".
运行报错  什么原因
8楼2015-02-02 12:04:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhuofp13

新虫 (小有名气)

引用回帖:
7楼: Originally posted by 狂疯业火之理 at 2015-02-01 22:13:00
我明白那个图怎么做了,你surf的应该是(g,k,l,f),其中g是x乘以f的数值,k是y乘以f的数值,l是z乘以f的数值,都是点乘,f不变。这样就不是球面了,当然也可以是乘以f的平方,记得波函数概率密度是那么用的,你 ...

你的思路是非常对的
9楼2015-02-02 12:07:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

狂疯业火之理

银虫 (正式写手)

引用回帖:
9楼: Originally posted by zhuofp13 at 2015-02-02 12:07:23
你的思路是非常对的...

哈哈,多年不做这个,还是有点儿生的

[ 发自小木虫客户端 ]
人外有人,天外有天。
10楼2015-02-02 12:12:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhuofp13 的主题更新
信息提示
请填处理意见