主题:求助meshgrid的使用方法
3121x
[专家分:0] 发布于 2007-08-08 15:37:00
求助高手!我有一组向量[x,y,z],3行114列。x为纬度,y为经度,z为高度。如何使用meshgrid进行网格化,然后用surf绘立体图程序绘出立体图?
回复列表 (共10个回复)
沙发
gslyd [专家分:1300] 发布于 2007-08-09 09:36:00
比较适合做曲面拟合。若将数据贴上,可以试试。
板凳
3121x [专家分:0] 发布于 2007-08-09 12:47:00
118.818 32.054 -16
119.006 32.05 7.7
119.154 31.958 11.7
119.206 31.738 -5.8
119.021 31.652 -26.8
118.867 31.775 13.3
118.791 31.931 12.2
119.235 31.589 -16.8
119.305 31.476 -22.8
119.475 31.424 -56.8
119.302 32.07 6.7
119.405 32.189 -17.9
119.607 32.156 17.2
119.808 32.023 14.2
119.823 31.854 76.2
119.859 31.775 143.2
119.791 31.775 134.2
119.55 31.763 48.4
119.359 31.72 0.2
119.65 31.391 1.2
119.771 31.389 81
119.971 31.519 189.7
119.951 31.677 189.7
120.143 31.519 25.7
120.287 31.537 102.7
120.437 31.434 280.7
120.259 31.259 102.7
120.637 31.156 2.7
120.585 30.974 5.7
120.36 30.859 39.7
120.09 30.839 -6.3
119.901 31.005 7.7
119.898 31.186 12.7
119.384 32.218 2.1
118.853 32.051
119.374 32.226 33.1
118.74 32.24 -13
118.836 32.342 1
118.804 32.534 25
118.789 32.756 -9
118.774 32.974 -17
118.853 33.145 0
118.872 33.289 22
118.938 33.433 -24.5
119.089 33.59 61.5
119.134 33.503 25.3
119.301 33.235 -2.1
119.407 33.004 -24.1
119.426 32.784 18.9
119.503 32.526 19.9
119.419 32.373 23
119.169 32.291 23
118.984 32.323 -17
118.49 33.003 -5
118.372 33.104 -23
118.184 33.308 -17
118.203 33.468 8
118.29 33.62 20
118.384 33.772 27.2
118.678 33.69 32.5
118.889 33.703 74.5
118.271 33.958 30.3
118.484 34.04 16.3
118.671 34.086 4.3
118.743 34.17 35
118.902 34.203 38
119.036 34.2 1
119.241 34.293 -45
119.217 34.107 0
119.124 33.956 -2.5
119.061 33.797 46.5
118.134 33.891 34.3
117.952 33.906 41.3
117.74 33.991 17.3
117.574 34.036 31.3
117.373 34.137 10.3
117.189 34.235 10.3
117.392 34.326 23.3
117.625 34.42 7.3
117.876 34.538 68.3
118.11 34.537 63
118.343 34.524 37
118.336 34.368 7.3
118.35 34.203 34.3
118.575 34.593 11
118.823 34.667 23
119.044 34.709 4
119.239 34.639 0
119.238 34.475 -9
119.652 32.817 25.9
119.825 32.938 39.9
119.952 33.141 30.9
119.954 33.192 33.9
119.991 33.343 21.2
120.035 33.356 106.2
120.152 33.386 22.2
120.357 33.473 24.2
120.255 33.507 26.8
120.223 33.67 18.8
119.99 33.538 16.8
119.822 33.739 4.8
119.819 33.935 -8.2
119.642 33.826 4.9
119.451 33.635 8.9
119.238 33.525 -7.1
117.876 33.475 46
120.23 33.875 -25.3
120.253 34.074 1.7
120.086 34.149 -3.3
120.048 34.306 -4.3
119.811 34.375 2.7
119.766 34.233 -1.3
119.657 34.125 -15
119.443 34.287 -2
数据已经贴上,谢谢了!
3 楼
gslyd [专家分:1300] 发布于 2007-08-10 07:19:00
此数据的曲面比较复杂,很难找到简单的曲面函数将其拟合,或拟合效果不好。可采用另外的方法,不知能否合用?
先将数据在当前目录下存成data.dat文件,运行下列小程序:
clear all,clc
data=load('data.dat');
n=size(data,1);
x1=data(:,1);x2=data(:,2);y=data(:,3);
r1=max(x1)-min(x1);r2=max(x2)-min(x2);
y2=zeros(18);n2=zeros(18);
for l=1:n
g1=ceil((x1(l)-min(x1)+.01)/r1*17);
g2=ceil((x2(l)-min(x2)+.01)/r2*17);
y2(g1,g2)=y2(g1,g2)+y(l);
n2(g1,g2)=n2(g1,g2)+1;
end
for i=1:18
for j=1:18
if n2(i,j)==0
n2(i,j)=1;
end
end
end
y2=y2./n2;
y3=fliplr(y2);
bar3(y3,.99)
axis tight
pause(2)
figure(2)
[x11 x22]=meshgrid(1:18);
x11=19-x11;x22=19-x22;
surf(x11,x22,y2)
axis tight
shading interp
alpha(.95)
4 楼
3121x [专家分:0] 发布于 2007-08-10 09:03:00
谢谢aslyd!图是能绘出来了,但不是我想象的那种图,不知为什么meshgrid不能对数据进行网格化?
5 楼
gslyd [专家分:1300] 发布于 2007-08-10 09:55:00
不太明白你说的网格化是何意?
6 楼
3121x [专家分:0] 发布于 2007-08-10 11:00:00
C:\Documents and Settings\nanjing\桌面\untitled.jpg
我要绘制的图是这样的。
7 楼
gslyd [专家分:1300] 发布于 2007-08-10 19:39:00
无法显示图形。
8 楼
3121x [专家分:0] 发布于 2007-08-10 20:29:00
怎么将图形复制到回复内容中来?
9 楼
3121x [专家分:0] 发布于 2007-08-10 20:33:00
z=peaks(25);
mesh(z);
colormap(hsv)
与用以上程序绘出来的图形类似。
10 楼
gslyd [专家分:1300] 发布于 2007-08-10 23:36:00
我的程序中figure(2)的图形即是,你可将surf换成mesh即可,也可把shading interp去掉。显然,他们所表示的内容有一定的异同点。
我来回复