wszc 发表于 2006-11-11 21:21

再问 离散点画去面的问题

各位大哥大姐
      为已经看了关于用离散点画球面的帖子
但是我希望用离散点画一个准双曲面
试过了上面那种方法效果不好

求求各位指教    感激不尽
点的位置如下(三列分别为x,y,z)
78.021        -31.91        153.77
78.32        -34.177        153.39
78.555        -36.447        153.01
78.729        -38.718        152.63
78.843        -40.987        152.26
78.898        -43.252        151.88
78.896        -45.513        151.52
78.837        -47.767        151.15
78.723        -50.013        150.79
78.556        -52.249        150.43
67.671        -49.11        140.36
67.289        -51.487        139.94
66.839        -53.845        139.53
66.324        -56.183        139.11
65.746        -58.499        138.7
65.107        -60.791        138.3
64.409        -63.057        137.89
63.654        -65.297        137.49
62.845        -67.509        137.1
61.983        -69.692        136.7
52.403        -63.914        126.41
51.266        -66.17        125.96
50.066        -68.383        125.5
48.806        -70.551        125.06
47.487        -72.673        124.61
46.114        -74.747        124.17
44.688        -76.774        123.74
43.214        -78.752        123.3
41.693        -80.681        122.88
40.128        -82.56        122.45
32.44        -74.54        111.95
30.56        -76.391        111.46
28.631        -78.173        110.98
26.657        -79.885        110.5
24.641        -81.527        110.03
22.586        -83.1        109.56
20.497        -84.603        109.09
18.377        -86.036        108.64
16.228        -87.402        108.18
14.055        -88.699        107.74
8.7253        -78.92        97.04
6.2351        -80.055        96.524
3.7234        -81.099        96.014
1.1945        -82.053        95.51

xjzuo 发表于 2006-11-11 23:20

回复

你的数据相当奇怪,过于分段平缓,(也算是一种奇异性吧)所以拟合效果不好.
我拟合了一下,不知是否是你要的图形.(见附件)

wszc 发表于 2006-11-12 16:50


xizuo
    你得到的图像跟我期望的很相似
请把拟合方法告诉我
谢谢

xjzuo 发表于 2006-11-12 17:46

回复

我给你一个提示吧: 用griddata可实现,具体用法参见Matlab帮助.你自己先试试.
如果还是不行,我再写给你。

wszc 发表于 2006-11-13 09:09

xjzuo
嗯我按帮助里的格式试了一下只是出了原来的离散图
拟合的曲面图还是没有出来 呵呵我实在是太菜了   
刚接触画图这一块还请多多帮忙    谢谢

xjzuo 发表于 2006-11-13 09:28

不会吧? 那你参考一下我编的程序,看看你的为什么画不出来:
%%%%%%%%%%%%%%
function fitting
%%%Fitting a surface
load z1.txt
x=z1(:,1)';
y=z1(:,2)';
z=z1(:,3)';
x1=linspace(1.1,79,200);
y1=linspace(-83,-31,200);
=meshgrid(x1,y1);
zz=griddata(x,y,z,xx,yy);
mesh(xx,yy,zz)
hold on
plot3(x,y,z,'o')
%%%%%%%%%%%%%
其中z1.txt 就是你的数据.

wszc 发表于 2006-11-13 17:03

谢谢
开始好像是因为我设置meshgrid的时候出了问题
用你的程序可以得到拟合图但我感觉好像网络太密了   
这样的图好像不是特别方便观察不知道有没有其他办法
呵呵挺谢谢你的   我还得好好学习咯~~~~~~
我在一些文章中看到其他人得到的图 如下:(他这个图应该也是由离散点得到的,不知道是用的什么方法)

[ 本帖最后由 wszc 于 2006-11-13 17:06 编辑 ]

xjzuo 发表于 2006-11-13 17:08

回复

网格变稀可以通过少取数据点实现.
你可以在xx,yy取值时,将linspace的点数取为100或50,...
另:拟合成"准双曲面"可以试试给定模型,用插值函数拟合.
      (griddata还可以选其他方式拟合,参见help griddata)

[ 本帖最后由 xjzuo 于 2006-11-13 17:17 编辑 ]
页: [1]
查看完整版本: 再问 离散点画去面的问题