matlab里插值算法问题

[x0,y0]=meshgrid(-3:0.25:3);
z=peaks(x0,y0);
[x,y]=meshgrid(-3:0.125:3);
z1=interp2(x0,y0,z,x,y);%默认采用了双线性插值算法。
figure
title("chushi");
surfl(x0,y0,z);
% hold on;
figure
title("chazhi");
surfl(x,y,z1);
axis([-3 3 -3 3 -5 20]);%这个是x的范围是[-3,3]
%yd的范围[-3,3],z的范围[-5,20]

①其中interp2()函数实现了插值,
interp2(x0,y0,z,x,y,‘method’)
method有以下几种方法:
’linear’:双线性插值算法(缺省算法);
’nearest’:最临近插值;
’spline’:三次样条插值;
’cubic’:双三次插值。

②也有一个一维的插值函数interp1()
method:
nearest’:最近邻点插值,直接完成计算;
’linear’:线性插值(缺省方式),直接完成计算;
’spline’:三次样条函数插值。对于该方法,命令interp1 调用函数spline、ppval、mkpp、umkpp。这些命令生成一系列用于分段多项式操作的函数。命令spline 用它们执行三次样条函数插值;
’pchip’:分段三次Hermite 插值。对于该方法,命令interp1 调用函数pchip,用于对向量x 与y 执行分段三次内插值。该方法保留单调性与数据的外形;
’cubic’:与’pchip’操作相同;
’v5cubic’:在MATLAB 5.0 中的三次插值。
对于超出x 范围的xi 的分量,使用方法’nearest’、’linear’、’v5cubic’的插值算法,相应地将返回NaN。对其他的方法,interp1 将对超出的分量执行外插值算法。

我测试了一段

x=[1 2 4];
y=[3 5 8];
a=2.2;
z=interp1(x,y,a);

这个就是用这个插值方法算出x=2.2点处的对应y值

③peaks()

z = peaks(n); % returns an n-by-n matrix

z = peaks(v); % returns an n-by-n matrix, where n = length(v)

% ============================================
z = peaks(x,y); % returns at the given x and y domain

           % ensure size(x) == size(y)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值