Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2010-05-07
年龄: 38
帖子: 2
声望力: 0 ![]() |
![]()
现在小弟有MxN个船体外表面的数据点(x,y,z),但每一列和每一行数据点的x值和y值都不相等,所以不能均分x和y;这些数据点在一个dd.txt的文件中,我分成了三列来存放它们,求问:怎么在MATLAB中插值或拟合这些点成一个曲面呢?
|
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2009-04-11
年龄: 38
帖子: 138
声望力: 19 ![]() |
![]()
试试griddata()这个函数
__________________
看帖回帖,就是对我们最大的支持! |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2010-05-07
年龄: 38
帖子: 2
声望力: 0 ![]() |
![]()
好像不行啊,因为我的这些点每一次的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 谢谢! |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2012-05-15
帖子: 1
声望力: 0 ![]() |
![]()
这个用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)%三维曲面 |
![]() |
![]() |