matlab离散点绘图问题

我用三维测量的方法测量一个球的表面,得到了部分球表面点的三维坐标,存在一个矩阵p中。现在我要重建这个球的表面,就是相当于离散点绘图,但是我用plot3(x,y,z,'.')绘出来的效果不是很好。希望各位能帮我想想其他的办法。最好能得到像下图所示的效果。由于p的数据量很大,这里没有写出来。有一点就是其中的x值和y值有相等的情况。
哪位能帮我的可否加我QQ:380346148,我把数据传给你,你帮我弄一下,谢谢了。

编写mymesh()函数:
function mymesh()
temdat=load('D:\test.txt');
if temdat== -1
('Error opening the file');
end
figure;
h=plot3(temdat(:,1),temdat(:,2),temdat(:,3));
set(h,'linestyle','none')
hold on;
grid on;
[x,y]=meshgrid(linspace(-150,150,500),linspace(-150,150,500));
z = griddata(temdat(:,1),temdat(:,2),temdat(:,4),x,y);
meshc(x,y,z);
axis([0,180,0,180]);

坐标放在D:\test.txt里(你也可以改成其他的),格式如下:
45 32 56
78 45 21
46 79 55
46 75 22
14 69 75
……

**********************************************************************
出现警告时:在X、Y相同的坐标上Z值不同,采用Z的平均值进行作图。

处理:
这不单是程序的问题,也是数据的问题。对于大量数据的话不会有太大影响,但是如果你没有得到理想的图的话,可以有两种解决办法:
1、改数据。
可以把xy相同的z不同的数据,删去一组。也可以把xy相同的z不同的数据,稍微改动x或y,使之不同。
2、改程序。
方法一有时不可取,比如要画圆的时候(这里说的是用散点数据作图,用系统函数的话,另当别论,只不过那是系统函数考虑的问题了),xy相同的坐标上很可能有z不同的两个值。这时可以改程序,把圆分两次画出,每次画半个圆,中间可用“hold on ;”是两次作图能同时显现。
程序你应该自己会改,和现在差不多,只是重复一次。
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-04-08

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

第2个回答  2019-08-21
我想画三维离散点,这些点不是存在一个数组里面,而是单独一个点,我想达到base=randn(10,3);%%%此处用你的数据替换
for
i=1:10
a=base(i,:)
第3个回答  2019-03-03
看你的网格是等距的么?
是的话
dx/dt|x=xn
~
(xn+1-xn-1)/2
delta
x
不明白可追问
第4个回答  2010-05-23
尝试surf,mesh, meshc, meshz, waterfall.
相似回答