23、matlab一维数据插值:interp1() 函数

1、一维数据插值:interp1() 函数

语法

语法1:vq = interp1(x,v,xq) 使用线性插值返回一维函数在特定查询点的插入值。
语法2:vq = interp1(x,v,xq,method) 指定备选插值方法

参数

x:样本点  v:对应值   xq:查询点的坐标

method:'linear'(线性插值)、'nearest'(最近邻点插值)、'next'(下一个邻点插值)、

'previous'(上一个邻点插值)、'pchip'(保形分段三次插值)、'cubic'、'v5cubic'、'makima' 或 'spline'(样条插值)

2 、粗略采样插值

1)linear插值

代码

x = 0:pi/6:2*pi; 
v = sin(x);
xq = 0:pi/16:2*pi;
figure(1)
vq1 = interp1(x,v,xq);%xq表示插入点的坐标索引
plot(x,v,'-*',xq,vq1,':^');
title('linear插值');
legend('原数据','插值数据')

视图效果

2)Spline插值

代码

x = 0:pi/6:2*pi; 
v = sin(x);
xq = 0:pi/16:2*pi;
figure(2)
vq2 = interp1(x,v,xq,'spline');
plot(x,v,'-*',xq,vq2,':^');
xlim([0 2*pi]);
title('Spline插值');
legend('原数据','插值数据')

视图效果

3) cubic插值

代码

x = 0:pi/6:2*pi; 
v = sin(x);
xq = 0:pi/16:2*pi;
figure(3)
vq2 = interp1(x,v,xq,'cubic');
plot(x,v,'-*',xq,vq2,':^');
xlim([0 2*pi]);
title('cubic插值');
legend('原数据','插值数据')

视图效果

4) nearest插值

代码

x = 0:pi/6:2*pi; 
v = sin(x);
xq = 0:pi/16:2*pi;
figure(3)
vq2 = interp1(x,v,xq,'nearest');
plot(x,v,'-*',xq,vq2,':^');
xlim([0 2*pi]);
title('nearest插值');
legend('原数据','插值数据')

视图效果

5) next插值

代码

x = 0:pi/6:2*pi; 
v = sin(x);
xq = 0:pi/16:2*pi;
figure(3)
vq2 = interp1(x,v,xq,'next');
plot(x,v,'-*',xq,vq2,':^');
xlim([0 2*pi]);
title('next插值');
legend('原数据','插值数据')

视图效果

6)previous插值

代码

x = 0:pi/6:2*pi; 
v = sin(x);
xq = 0:pi/16:2*pi;
figure(3)
vq2 = interp1(x,v,xq,'previous');
plot(x,v,'-*',xq,vq2,':^');
xlim([0 2*pi]);
title('previous插值');
legend('原数据','插值数据')

视图效果

 

 7)pchip插值

代码

x = 0:pi/6:2*pi; 
v = sin(x);
xq = 0:pi/16:2*pi;
figure(3)
vq2 = interp1(x,v,xq,'pchip');
plot(x,v,'-*',xq,vq2,':^');
xlim([0 2*pi]);
title('pchip插值');
legend('原数据','插值数据')

视图效果

3、 复数值插值

代码

x = 1:10;
v = (5*x)+(x.^2*1i);
xq = 1:0.25:10;
vq = interp1(x,v,xq);
figure(1)
plot(x,real(v),'*r',xq,real(vq),'-r');
hold on
plot(x,imag(v),'*b',xq,imag(vq),'-b');
legend('实部插值结果','虚部插值结果')

视图效果

4、 在一个传递点插入多组数据

代码

x = (-5:5)';
v1 = x.^2;
v2 = 2*x.^2 + 2;
v3 = 3*x.^2 + 4;
v = [v1 v2 v3];
xq = -5:0.1:5;
vq = interp1(x,v,xq,'pchip');
figure(1)
plot(x,v,'o',xq,vq,'^');

视图效果

相关推荐

  1. matlab二次函数 interp2

    2024-06-05 19:58:01       12 阅读
  2. MATLAB --- interp1( )函数的用法

    2024-06-05 19:58:01       36 阅读
  3. matlabinterp2函数应用

    2024-06-05 19:58:01       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-05 19:58:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-05 19:58:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-05 19:58:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-05 19:58:01       20 阅读

热门阅读

  1. 将vector/array从非托管c++传递到c#

    2024-06-05 19:58:01       8 阅读
  2. ubuntu使用Docker笔记

    2024-06-05 19:58:01       9 阅读
  3. 升级Jenkins从2.263.3到2.440.2

    2024-06-05 19:58:01       11 阅读
  4. 贪心算法和动态规划算法选择依据

    2024-06-05 19:58:01       7 阅读
  5. TypeScript的简单总结

    2024-06-05 19:58:01       6 阅读
  6. iOS ActivityViewController使用

    2024-06-05 19:58:01       10 阅读
  7. docker安装minio及minio的使用

    2024-06-05 19:58:01       10 阅读
  8. axios学习

    2024-06-05 19:58:01       8 阅读
  9. 什么是封装?为什么是要封装?

    2024-06-05 19:58:01       10 阅读