ingsnow 发表于 2009-10-12 10:20

求助关于四维数据绘图

想问一下,如果要画四维图形
四维数据,第四维是关于球外的三维空间的函数;
用颜色表示函数大小,函数v的值与r,theta,phi没有表达式关系,用下列的slice程序老错,改了很久,也没改好。
麻烦帮忙看看,或者各位有更好的办法?

= meshgrid(2.5:2.5/50:5,0:pi/50:pi,0:2*pi/50:2*pi);
=sph2cart(r,Sita,Fai);%球坐标转成直角坐标系
s=(load('pp.mat','-mat'));
v=s.ppdata;%ppdata是51*51*51大小的离散点数据
xslice=;
yslice=;
zslice=;
slice(x,y,zi,v,xslice,yslice,zslice)
colorbar

ChaChing 发表于 2009-10-12 14:48

还不到绘图, 错误就太多了!

求助完整格式:出错代码和出错提示???PLS

[ 本帖最后由 ChaChing 于 2009-10-12 14:53 编辑 ]

ingsnow 发表于 2009-10-13 09:07

不好意思,我贴了原来错误很多的代码跟数据

= meshgrid(2.5:2.5/50:5,0:pi/50:pi,0:2*pi/50:2*pi);
=sph2cart(r,theta,phi);%球坐标转成直角坐标系
s=(load('pp.mat','-mat'));
v=s.ppdata;%ppdata是51*51*51大小的离散点数据
xslice=;
yslice=;
zslice=;
slice(x,y,z,v,xslice,yslice,zslice)
colorbar



原帖由 ChaChing 于 2009-10-12 14:48 发表 http://www.chinavib.com/forum/images/common/back.gif
还不到绘图, 错误就太多了!

求助完整格式:出错代码和出错提示???PLS

ingsnow 发表于 2009-10-15 10:29

请问有人知道为什么我的程序没提示错误,但是图却画不出来呢?

ChaChing 发表于 2009-10-16 15:46

slice今天学习了下, 之前很少画3D图!~ 试了下没好结果!
程序在旧版的确没提示错误, 但在新版是会提示错误的!
由提示告知好像slice中的x/y/z需直接由meshgrid产生! 事实如何待高人路过确认

直觉LZ的问题是球座标, 考量下以sphere及surface是否可满足需求

friendchj 发表于 2009-10-17 01:30

slice(X,Y,Z,V,sx,sy,sz) draws slices of the volume V. X, Y, and Z are three-dimensional arrays specifying the coordinates for V. X, Y, and Z must be monotonic and orthogonally spaced.
由于要求X,Y,Z是单调的,可以在画图前加一行
……
=meshgrid(min(x(:)):(max(x(:))-min(x(:)))/50:max(x(:)),...
               min(y(:)):(max(y(:))-min(y(:)))/50:max(y(:)),...
               min(z(:)):(max(z(:))-min(z(:)))/50:max(z(:)));
slice(x,y,z,v,xslice,yslice,zslice)

……

ChaChing 发表于 2009-10-17 11:41

回复 6楼 friendchj 的帖子

slice(x,y,z,v,xslice,yslice,zslice)
里头的v不需与x/y/z对应吗? Thks

friendchj 发表于 2009-10-17 14:02

回复 7楼 ChaChing 的帖子

v要与x/y/z大小一致

ChaChing 发表于 2009-10-17 14:17

回复 8楼 friendchj 的帖子

喔, 个人表达不清楚
经过min(x(:)):(max(x(:))-min(x(:)))/50:max(x(:))..., 不是相当于重新定义了x值, 而原先与x/y/z对应的v值, 不需重新赋予吗?
是不是我误会了x/y/z/v的含意?

friendchj 发表于 2009-10-18 10:06

回复 9楼 ChaChing 的帖子

哦,我明白了你的意思。如果这样,应该让X,Y,Z重排的时候,让Z对应的值也重排。不好意思,忘考虑了,呵呵

ericky 发表于 2009-10-19 12:37

回复 楼主 ingsnow 的帖子

楼主,你的这个4维图画出来了么?

friendchj 发表于 2009-10-19 23:44

回复 11楼 ericky 的帖子

让XYZ变单调以后,能出图。

ingsnow 发表于 2009-10-21 12:28

回复 11楼 ericky 的帖子

还没画出来呢

ingsnow 发表于 2009-10-21 12:44

回复 12楼 friendchj 的帖子

= meshgrid(2.5:2.5/50:5,0:pi/50:pi,0:2*pi/50:2*pi);
=sph2cart(r,theta,phi);%球坐标转成直角坐标系
s=(load('pp.mat','-mat'));
v=s.ppdata;%ppdata是51*51*51大小的离散点数据
xslice=;
yslice=;
zslice=;
=meshgrid(min(x(:)):(max(x(:))-min(x(:)))/50:max(x(:)),...
               min(y(:)):(max(y(:))-min(y(:)))/50:max(y(:)),...
               min(z(:)):(max(z(:))-min(z(:)))/50:max(z(:)));
slice(x,y,z,v,xslice,yslice,zslice)
colorbar


画出来的图,跟我的原意似乎差很远,我要画的是半径大小为2.5与5.0之间的同心球之间的空间函数,可是画出来很奇怪,是不是我程序还是有挺多错误的?

ericky 发表于 2009-11-10 19:57

成功了么?
页: [1]
查看完整版本: 求助关于四维数据绘图