【无标题】

MATLAB二维插值方法比较

1.基础数据

ma_list = 0.1:0.1:0.9;
alpha_list = [0:2:10]';

cx_list = [0.4177,0.3858,0.3779,0.3785,0.3787,0.3829,0.3855,0.4082,0.4947;...
    0.4404,0.4086,0.4007,0.4015,0.4018,0.4062,0.4091,0.4321,0.5192;...
    0.5219,0.4903,0.4827,0.4838,0.4846,0.4897,0.4934,0.5175,0.6073;...
    0.6603,0.6290,0.6218,0.6234,0.6249,0.6310,0.6363,0.6621,0.7571;...
    0.8534,0.8226,0.8160,0.8184,0.8209,0.8284,0.8358,0.8641,0.9672;...
    1.1023,1.0723,1.0666,1.0700,1.0738,1.0835,1.0938,1.1254,1.2392];

ma = 0;alpha = 4;

2.interp2函数

cx = interp2(ma_list,alpha_list,cx_list,ma,alpha)
  • linear方法未指定外插方法,返回NaN!
cx = interp2(ma_list,alpha_list,cx_list,ma,alpha,'linear',0)
  • linear方法指定外插,但外插值只能是固定常数。

3.griddedInterpolant函数

[alpha_grid,ma_grid] = ndgrid(alpha_list,ma_list);

F = griddedInterpolant(alpha_grid,ma_grid,cx_list);
cx = F(alpha,ma)
  • griddedInterpolant函数可以任意指定外插方法(linear、nearest…);
  • 计算一个griddedInterpolant对象F在多组不同查询点的插值比分别使用interpn计算插值更快,例如:
 % Fast to create interpolant F and evaluate multiple times
F = griddedInterpolant(X1,X2,V)
 v1 = F(Xq1)
v2 = F(Xq2)
% Slower to compute interpolations separately using interp2
v1 = interp2(X1,X2,V,Xq1)
v2 = interp2(X1,X2,V,Xq2)

4.结论

二维参数插值时可以用griddedInterpolant函数,既可指定外插方法,又可提高运算速度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值