用MATLAB,给出三维点的空间坐标和每个点的颜色,怎样绘制三维面,不要网格,我用surf函数得到

用MATLAB,给出三维点的空间坐标和每个点的颜色,怎样绘制三维面,不要网格,我用surf函数得到了下面的图片,怎样把网格去掉,并且贴上颜色啊?大神?

加上一句   shading interp;

解决问题,保证OK!

在你surf以后

不要忘了采纳哟。

追问

用C贴上点的颜色时就不能用这句代码了,不知道为什么

surf(x,y,z,c)

追答

你好,首先你要确保你的x,y,z,能够用surf画出图来。
然后 c是一个列向量,长度和x的行数一致。
然后就可以用surf(x,y,z,c)了。
然后加上我之前写的那句。
就能够出来结果,我就采用的这种方法出来了上面的那个图。

追问

怎样把每个点的颜色加到图片上啊!

一直搞不定。。。。

追答

你的c矩阵多大?是不是列向量?有没有确切的数值?

追问

151*151

小x是每个点的横坐标组成的向量

追答

这个当然采用 surf画不出来了。
surf(x,y,z,c)
其实第四维的那个c值只可能是个列向量,表示的是空间 (x,y,z)点处对应的值。

追问

每个点对应一个值?

那我需要把RGB信息集成到一个值里面吧

这个用什么转换呢?

追答

请问你的那个颜色是对应的什么值?你就那我那个来说,我的第四维就表示的是温度。用颜色表示的是空间某个点的温度

追问

就是把RGB三个值表示的颜色用一个值表示

追答

不是这个意思。。
如果你的第四维没有任何物理意义的话,就不要搞第四维,用surf(x,y,z)就可以画出图了,其中颜色表示的就是z值的大小。

另外你的151*151是从哪里来的呢?
或许是我没有理解你的题意。

追问

第四维表示颜色信息

我在还原三维像

得到的是很多点的空间坐标和RGB颜色值

把空间坐标形成图像,再把颜色附上去

得到带颜色的立体图

就是怎样附颜色这块搞不定

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-08-19
在你原来使用surf函数的时候,增加两个参数就可以了,如下
surf(.....,'edgecolor','none');追问

怎样贴上每个点的颜色呀!

用surf(x,y,z,c)贴颜色就不知道怎么去掉网格了

追答

surf(x,y,z,c,'edgecolor','none');

追问

这样运行就不出图了,很奇怪

这是一部分代码

追答

看你代码好像没有什么问题
X,Y,Z,C都是大小相等的矩阵吗?
C的内容正常吗?
你的plotxyz里面的坐标数据不是整数吧?

你将plotxyz的数据作为矩阵a1的下标没有问题吗?

追问

不是整数,C需要是向量吧

追答

不是,C可以是跟X,Y,Z大小一样的矩阵
你看看C数据有没有不正常,里面的数据不是nan?

如果plotxyz是小数,那么
a1(plotxyz(i,1),plotxyz(i,2),1)
不会报错吗?

追问

不会报错,是不是C中的每一个值对于一个点的颜色啊!

追答

是啊,C中的值和曲面网格一一对应
如果X,Y,Z,C都没有问题,没有理由画不出图
随便用两句程序就能都画出带颜色不带网格的曲面图
[X Y]=meshgrid(1:10,1:10);
Z=exp(-((X-5).^2+(Y-5).^2)/10);
C=rand(10);
surf(X,Y,Z,C,'edgecolor','none');
你可以试试,这里X,Y,Z,C都是10*10的矩阵

追问

好的

本回答被提问者采纳
第2个回答  2015-12-01
您好,能把这个源码发给我吗,谢谢。
第3个回答  2014-08-20
相似回答