Matlab插值函数

  1. x=0:2*pi;
  2. y=sin(x);
  3. xx=0:0.5:2*pi;
  4. %interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值
  5. y1=interp1(x,y,xx);
  6. figure
  7. plot(x,y,‘o‘,xx,y1,‘r‘)
  8. title(‘分段线性插值‘)
  9. %临近插值
  10. y2=interp1(x,y,xx,‘nearest‘);
  11. figure
  12. plot(x,y,‘o‘,xx,y2,‘r‘);
  13. title(‘临近插值‘)
  14. %球面线性插值
  15. y3=interp1(x,y,xx,‘spline‘);
  16. figure
  17. plot(x,y,‘o‘,xx,y3,‘r‘)
  18. title(‘球面插值‘)
  19. %三次多项式插值法
  20. y4=interp1(x,y,xx,‘cubic‘);
  21. figure
  22. plot(x,y,‘o‘,xx,y4,‘r‘);
  23. title(‘三次多项式插值‘)

(1)    Nearest方法速度最快,占用内存最小,但一般来说误差最大,插值结果最不光滑。

(2)    Spline三次样条插值是所有插值方法中运行耗时最长的,插值函数及其一二阶导函数都连续,是最光滑的插值方法。占用内存比cubic方法小,但是已知数据分布不均匀的时候可能出现异常结果。

(3)    Cubic三次多项式插值法中,插值函数及其一阶导数都是连续的,所以插值结果比较光滑,速度比Spline快,但是占用内存最多。


语法形式


说明


y=interp1(x,Y,xi)


由已知点集(x,Y)插值计算xi上的函数值


y=interp1(x,Y,xi)


相当于x=1:length(Y)的interp(x,Y,xi)


y=interp1(x,Y,xi,method)


用指定插值方法计算插值点xi上的函数值


y=interp1(x,Y,xi,method,’extrap’)


对xi中超出已知点集的插值点用指定插值方法计算函数值


y=interp1(x,Y,xi,method,’extrap’,extrapval)


用指定方法插值xi上的函数值,超出已知点集处函数值取extrapval


y=interp1(x,Y,xi,method,’pp’)


用指定方法插值,但返回结果为分段多项式


Method


方法描述


‘nearest’


最邻近插值:插值点处函数值与插值点最邻近的已知点函数值


‘liner’


分段线性插值:插值点处函数值由连接其最邻近的两侧点的线性函数预测。Matlab中interp1的默认方法。


‘spline’


样条插值:默认为三次样条插值。可用spline函数替代


‘pchip’


三次Hermite多项式插值,可用pchip函数替代


‘cubic’


同’pchip’,三次Hermite多项式插值

时间: 2024-10-19 23:38:53

Matlab插值函数的相关文章

Matalb绘图总结2

Matlab绘图总结2 Contents 概述 如何在一个数据量很大的曲线上做标记 平滑一个数据量很少的曲线 绘制面积图 概述 上篇文章介绍了简单的绘图函数,地址见: http://blog.csdn.net/czyt1988/article/details/38637725 这篇将介绍一些论文绘图中经常碰到的问题,如在一个数量很大的曲线上做标记,平滑一个数据量很少的曲线,绘制面积图,以及如何改进绘图的美感 clc; clear all; close all; x = 0:0.01:5; y1

[转载]Matlab中插值函数汇总和使用说明

http://blog.sciencenet.cn/blog-457143-679275.html MATLAB中的插值函数为interp1,其调用格式为:  yi= interp1(x,y,xi,'method') 其中x,y为插值点,yi为在被插值点xi处的插值结果:x,y为向量, 'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 'method'是最邻近插值, 'linear'线性插值: 'spline'三次样条插值: 'cubic'立方插值.缺省时表示线性插值 注意

【Matlab】图像插值函数interp2理解

图像插值就是利用已知邻近像素点的灰度值(或rgb图像中的三色值)来产生未知像素点的灰度值,以便由原始图像再生出具有更高分辨率的图像. 通过例子来理解interp2函数: [X,Y] = meshgrid(-3:3); %产生网格坐标 V = peaks(X,Y); %通过网格坐标计算函数值,产生三维凹凸面 figure surf(X,Y,V) title('Original Sampling');%原始面 进行插值 [Xq,Yq] = meshgrid(-3:0.25:3); %产生插值所需要的

多普勒失真信号重采样的Matlab仿真分析

多普勒失真信号重采样的Matlab仿真分析 应用场景 水声通信指的是使用声信号在水中传输数据.相对而言,电磁信号在水中吸收严重衰减过快,光信号受水中悬浮颗粒的影响,也无法完成远距离传输.这两种信号的传播距离约为数百米,而声信号在水中传播距离达到数十千米,成为水下通信的首选方式. 水声通信的一个重大挑战就是运动带来的多普勒.多普勒造成信号的频率漂移,影响系统性能,因此非常有必要消除多普勒带来的影响.而多普勒在时域的表现为信号的长度压缩和扩展,即'y(t) = x((1+a) * t)',其中a为多

Matlab随笔之插值与拟合(上)

1.拉格朗日插值 新建如下函数: function y=lagrange(x0,y0,x) %拉格朗日插值函数 %n 个节点数据以数组 x0, y0 输入(注意 Matlat 的数组下标从1开始), %m 个插值点以数组 x 输入,输出数组 y 为 m 个插值 n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end

MATLAB命令大全

一.常用对象操作:除了一般windows窗口的常用功能键外.1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看.2.who 可以查看当前工作空间变量名, whos 可以查看变量名细节.3.功能键:功能键 快捷键 说明方向上键 Ctrl+P 返回前一行输入方向下键 Ctrl+N 返回下一行输入方向左键 Ctrl+B 光标向后移一个字符方向右键 Ctrl+F 光标向前移一个字符Ctrl+方向右键 Ctrl+R 光标向右移一个字符Ctrl+方向左键 Ctrl+L 光标向左移

[转] MATLAB快捷键

原文地址:MATLAB快捷键大全 (转载)作者:掷地有声 一.索引混排版 备注:删除了如F1(帮助)等类型的常见快捷命令 SHIFT+DELETE永久删除 DELETE删除 ALT+ENTER属性 ALT+F4关闭 CTRL+F4关闭 ALT+TAB切换 ALT+ESC切换 ALT+空格键窗口菜单 CTRL+ESC开始菜单 拖动某一项时按CTRL复制所选项目 拖动某一项时按CTRL+SHIFT创建快捷方式 将光盘插入到CD-ROM驱动器时按SHIFT键阻止光盘自动播放 Ctrl+1,2,3...

matlab快捷键大全

原文地址,点此查看 一.常用对象操作 除了一般windows窗口的常用功能键外. 1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看. 2.who   可以查看当前工作空间变量名, whos 可以查看变量名细节. 3.功能键: 功能键           快捷键           说明 方向上键      Ctrl+P       返回前一行输入 方向下键      Ctrl+N       返回下一行输入 方向左键      Ctrl+B       光标向后移一

[数学建模(六)]使用MATLAB实现插值

常用的插值:拉格朗日多项式插值.牛顿插值.分段线性插值.Hermite 插值和三次样条插值. 1.拉格朗日插值法 function y=lagrange(x0,y0,x); n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end 测试: >> x0=