Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 人工智能 > 计算机视觉/图像处理
计算机视觉/图像处理 A discussion board for Computer Vision & Digital image processing.
回复
 
主题工具 显示模式
旧 2010-05-08, 14:28   #1
why80038003
初级会员
 
why80038003 的头像
 
注册日期: 2010-05-07
年龄: 38
帖子: 2
声望力: 0
why80038003 正向着好的方向发展
难过 MATLAB中怎么插值或拟合给定的某个曲面上的一些离散点

现在小弟有MxN个船体外表面的数据点(x,y,z),但每一列和每一行数据点的x值和y值都不相等,所以不能均分x和y;这些数据点在一个dd.txt的文件中,我分成了三列来存放它们,求问:怎么在MATLAB中插值或拟合这些点成一个曲面呢?
why80038003 当前离线   回复时引用此帖
旧 2010-05-08, 17:48   #2
yfl
高级会员
 
yfl 的头像
 
注册日期: 2009-04-11
年龄: 38
帖子: 138
声望力: 19
yfl 正向着好的方向发展
默认 回复: MATLAB中怎么插值或拟合给定的某个曲面上的一些离散点

试试griddata()这个函数
__________________

看帖回帖,就是对我们最大的支持!
yfl 当前离线   回复时引用此帖
旧 2010-05-09, 17:02   #3
why80038003
初级会员
 
why80038003 的头像
 
注册日期: 2010-05-07
年龄: 38
帖子: 2
声望力: 0
why80038003 正向着好的方向发展
默认 回复: MATLAB中怎么插值或拟合给定的某个曲面上的一些离散点

引用:
作者: yfl 查看帖子
试试griddata()这个函数
好像不行啊,因为我的这些点每一次的x值都不一样,下面是我的这些点,一行21个点,每行x值都是从-50到50,总共7行。能不能帮我写个小程序啊?不胜感激啊!
-50.0000 0.0000 0.0000
-45.9499 0.7744 0.0000
-40.0035 1.7990 0.0000
-35.1121 2.5343 0.0000
-29.9853 3.2016 0.0000
-25.0040 3.7496 0.0000
-19.9989 4.2000 0.0000
-15.0003 4.5500 0.0000
-10.0000 4.8000 0.0000
-5.0000 4.9500 0.0000
0.0000 5.0000 0.0000
5.0000 4.9500 0.0000
10.0000 4.8000 0.0000
15.0003 4.5500 0.0000
19.9989 4.2000 0.0000
25.0040 3.7497 0.0000
29.9851 3.2016 0.0000
35.1130 2.5342 0.0000
40.0002 1.7996 0.0000
45.9510 0.7737 0.0000
50.0000 0.0000 0.0000
-50.0000 0.0064 -0.8238
-45.9496 0.7663 -0.8231
-40.0032 1.7715 -0.8226
-35.1119 2.4927 -0.8223
-29.9851 3.1472 -0.8224
-25.0038 3.6846 -0.8227
-19.9988 4.1262 -0.8233
-15.0002 4.4692 -0.8238
-9.9999 4.7142 -0.8243
-5.0000 4.8612 -0.8247
0.0000 4.9102 -0.8248
5.0000 4.8612 -0.8247
9.9999 4.7142 -0.8243
15.0002 4.4692 -0.8238
19.9988 4.1262 -0.8233
25.0038 3.6846 -0.8227
29.9849 3.1472 -0.8224
35.1127 2.4926 -0.8223
39.9999 1.7720 -0.8226
45.9507 0.7656 -0.8231
50.0000 0.0064 -0.8238
-50.0000 -0.0004 -1.9972
-45.9486 0.6952 -1.9965
-40.0024 1.6150 -1.9968
-35.1111 2.2751 -1.9970
-29.9843 2.8740 -1.9974
-25.0031 3.3657 -1.9980
-19.9983 3.7696 -1.9986
-14.9998 4.0834 -1.9992
-9.9996 4.3076 -1.9997
-4.9999 4.4419 -2.0000
0.0000 4.4867 -2.0001
4.9999 4.4419 -2.0000
9.9996 4.3076 -1.9997
14.9998 4.0834 -1.9992
19.9983 3.7696 -1.9986
25.0032 3.3657 -1.9980
29.9842 2.8740 -1.9974
35.1119 2.2750 -1.9970
39.9990 1.6155 -1.9968
45.9498 0.6945 -1.9965
50.0000 -0.0004 -1.9972
-50.0000 -0.0001 -2.9850
-45.9477 0.5988 -2.9837
-40.0018 1.3898 -2.9842
-35.1106 1.9572 -2.9851
-29.9840 2.4716 -2.9865
-25.0028 2.8938 -2.9879
-19.9981 3.2404 -2.9892
-14.9997 3.5095 -2.9903
-9.9995 3.7017 -2.9912
-4.9998 3.8169 -2.9917
0.0000 3.8553 -2.9918
4.9998 3.8169 -2.9917
9.9995 3.7017 -2.9912
14.9996 3.5095 -2.9903
19.9981 3.2404 -2.9892
25.0029 2.8938 -2.9879
29.9839 2.4717 -2.9865
35.1115 1.9571 -2.9851
39.9985 1.3902 -2.9842
45.9488 0.5980 -2.9837
50.0000 -0.0001 -2.9850
-50.0000 -0.0005 -3.9911
-45.9467 0.4585 -3.9917
-40.0013 1.0628 -3.9963
-35.1103 1.4959 -3.9985
-29.9838 1.8885 -4.0002
-25.0027 2.2110 -4.0011
-19.9980 2.4760 -4.0015
-14.9996 2.6819 -4.0019
-9.9995 2.8291 -4.0020
-4.9998 2.9175 -4.0020
0.0000 2.9468 -4.0021
4.9998 2.9175 -4.0020
9.9994 2.8291 -4.0020
14.9996 2.6819 -4.0019
19.9980 2.4760 -4.0015
25.0028 2.2110 -4.0011
29.9836 1.8885 -4.0002
35.1111 1.4958 -3.9985
39.9980 1.0631 -3.9963
45.9478 0.4577 -3.9917
50.0000 -0.0005 -3.9911
-50.0000 0.0083 -5.2895
-45.9460 0.2260 -5.2923
-40.0012 0.5079 -5.3025
-35.1104 0.7065 -5.3107
-29.9839 0.8845 -5.3173
-25.0028 1.0297 -5.3220
-19.9981 1.1486 -5.3252
-14.9996 1.2409 -5.3275
-9.9995 1.3068 -5.3289
-4.9998 1.3464 -5.3296
0.0000 1.3595 -5.3299
4.9998 1.3464 -5.3296
9.9995 1.3068 -5.3289
14.9996 1.2409 -5.3275
19.9981 1.1486 -5.3252
25.0029 1.0297 -5.3220
29.9837 0.8844 -5.3173
35.1112 0.7065 -5.3107
39.9980 0.5081 -5.3025
45.9471 0.2253 -5.2923
50.0000 0.0083 -5.2895
-50.0000 0.0000 -6.2500
-45.9456 0.0004 -6.2500
-40.0013 0.0000 -6.2500
-35.1107 0.0000 -6.2500
-29.9843 0.0000 -6.2500
-25.0033 0.0000 -6.2500
-19.9984 0.0000 -6.2500
-14.9999 0.0000 -6.2500
-9.9997 0.0000 -6.2500
-4.9999 0.0000 -6.2500
0.0000 0.0000 -6.2500
4.9999 0.0000 -6.2500
9.9997 0.0000 -6.2500
14.9999 0.0000 -6.2500
19.9984 0.0000 -6.2500
25.0033 0.0000 -6.2500
29.9842 0.0000 -6.2500
35.1115 0.0000 -6.2500
39.9981 0.0000 -6.2500
45.9467 -0.0004 -6.2500
50.0000 0.0000 -6.2500

谢谢!
why80038003 当前离线   回复时引用此帖
旧 2012-05-30, 22:52   #4
青鸟飞鱼
初级会员
 
青鸟飞鱼 的头像
 
注册日期: 2012-05-15
帖子: 1
声望力: 0
青鸟飞鱼 正向着好的方向发展
默认 回复: MATLAB中怎么插值或拟合给定的某个曲面上的一些离散点

这个用matlab自带的griddate插值算法,好像可以,具体做法是将数据存入A矩阵,
x=A(:,1);y=A(:,2);z=A(:,3);
scatter(x,y,5,z)%散点图
figure
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值
pcolor(X,Y,Z);shading interp%伪彩色图
figure,contourf(X,Y,Z) %等高线图
figure,surf(X,Y,Z)%三维曲面
青鸟飞鱼 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 07:01


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.