Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-04-01, 12:29   #1
baobaoniou2006
初级会员
 
注册日期: 2009-03-06
年龄: 39
帖子: 2
声望力: 0
baobaoniou2006 正向着好的方向发展
默认 求助 关于二维插值外推

我用二维插值,但是插值后的范围比原来的大,程序见下
x=0:1.875:360;
load lat94.txt;%这是插值前y的范围从-88.5到88.5
xi=0:2.5:360;
yi=[-90:2.5:90]';%这是插值后y的范围从-90到90
[xxi,yyi]=meshgrid(xi,yi);
edc=zeros(73,145,240);
for i=1:240;
edc(:,:,i)=interp2(x,lat94,ed(:,:,i),xxi,yyi,'cubic');

end;
这样做出来的结果edc(:,1,1)

ans =

1.0e+003 *

NaN
0.0784
0.0919
0.0853
0.0787
0.0731
0.0976
0.2313
0.4375
0.5698
0.5868
0.5908
0.5982
0.6187
0.6610
0.7209
0.8156
0.9341
1.0633
1.2234
1.4218
1.6494
1.8130
1.9300
2.0274
2.1140
2.1784
2.2191
2.2508
2.2565
2.2959
2.3457
2.3935
2.5437
2.7362
2.8530
2.8941
3.0696
2.8803
1.6095
0.9147
0.6190
0.4362
0.4206
0.4908
0.5568
0.5781
0.6193
0.6414
0.7026
0.8417
1.0165
0.8376
0.7446
0.7999
0.7976
0.8364
0.7390
0.7735
0.7572
0.7314
0.6851
0.6047
0.5312
0.4898
0.4414
0.3704
0.2202
0.0655
0.0427
0.0517
0.0552
NaN
然后我用 for i=1:240;
edc(:,:,i)=interp2(x,lat94,ed(:,:,i),xxi,yyi,'cubic','extrapval');

end;
??? Error using ==> interp2
EXTRAPVAL must be numeric.
就是在interp2函数里面加了一个'extrapval',显示错误
好像'extrapval‘必须是数字,我问别人,她说你外推多少就写多少个数字
然后我把程序改为for i=1:240;
edc(:,:,i)=interp2(x,lat94,ed(:,:,i),xxi,yyi,'cubic',1);

end;
得到的结果还是edc(:,1,1)

ans =

1.0e+003 *

NaN
0.0784
0.0919
0.0853
0.0787
0.0731
0.0976
0.2313
0.4375
0.5698
0.5868
0.5908
0.5982
0.6187
0.6610
0.7209
0.8156
0.9341
1.0633
1.2234
1.4218
1.6494
1.8130
1.9300
2.0274
2.1140
2.1784
2.2191
2.2508
2.2565
2.2959
2.3457
2.3935
2.5437
2.7362
2.8530
2.8941
3.0696
2.8803
1.6095
0.9147
0.6190
0.4362
0.4206
0.4908
0.5568
0.5781
0.6193
0.6414
0.7026
0.8417
1.0165
0.8376
0.7446
0.7999
0.7976
0.8364
0.7390
0.7735
0.7572
0.7314
0.6851
0.6047
0.5312
0.4898
0.4414
0.3704
0.2202
0.0655
0.0427
0.0517
0.0552
NaN
然后我又把外推的范围设置为2
也是这个 结果不知道怎么设置,我插值后的结果 边界上才不会是NaN
baobaoniou2006 当前离线   回复时引用此帖
旧 2009-04-01, 13:10   #2
laosam280
高级会员
 
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21
laosam280 正向着好的方向发展
默认 回复: 求助 关于二维插值外推

你把cubic改成nearest试试,不用双三次插值,减少边界条件。
laosam280 当前离线   回复时引用此帖
旧 2009-04-01, 19:23   #3
baobaoniou2006
初级会员
 
注册日期: 2009-03-06
年龄: 39
帖子: 2
声望力: 0
baobaoniou2006 正向着好的方向发展
默认 回复: 求助 关于二维插值外推

谢谢,我现在把cubic改成nearest 就行了
edc(:,:,i)=interp2(x,lat94,ed(:,:,i),xxi,yyi,'nearest',2);就成功了,没有NaN了,matlab 多谢laosam280
baobaoniou2006 当前离线   回复时引用此帖
回复


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

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



所有时间均为北京时间。现在的时间是 04:10


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