matlab自带的插值函数interp1的四种插值方法

matlab自带的插值函数interp1的四种插值方法分段线性插值,临近插值,球面插值,三次多项式插值!!

大家好,又见面了,我是你们的朋友全栈君。

x=0:2*pi;
y=sin(x);
xx=0:0.5:2*pi;

%interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值
y1=interp1(x,y,xx);
figure
plot(x,y,'o',xx,y1,'r')
title('分段线性插值')

%临近插值
y2=interp1(x,y,xx,'nearest');
figure
plot(x,y,'o',xx,y2,'r');
title('临近插值')

%球面线性插值
y3=interp1(x,y,xx,'spline');
figure
plot(x,y,'o',xx,y3,'r')
title('球面插值')

%三次多项式插值法
y4=interp1(x,y,xx,'cubic');
figure
plot(x,y,'o',xx,y4,'r');
title('三次多项式插值')

 

matlab自带的插值函数interp1的四种插值方法

 

matlab自带的插值函数interp1的四种插值方法

matlab自带的插值函数interp1的四种插值方法

matlab自带的插值函数interp1的四种插值方法

 

(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多项式插值

更新日志2020-11-3

有个小老弟问我,怎么把这个插值函数获取到,后续调用,然后去看了一眼官方文档,有一句话

pp = interp1(x,v,method,'pp')

分段多项式,以可传递到 ppval 函数进行计算的结构体的形式返回。

也就是说这个插值函数可以使用上述代码获取到函数,然后使用ppval执行这个函数在某个特定位置的插值结果,比如

%test interpolate
clear;clc;close all
N=1200;
x = 1:0.5:6;
y = sin(x);
pp = interp1(x,y,'pchip','pp');

xq= 1:0.1:6;
result = ppval(pp,xq);
plot(x,y,'o',xq,result,'-.')

上述代码就是将函数以`pp`变量返回,然后使用ppval调用此函数,获取在xq处的值

matlab自带的插值函数interp1的四种插值方法

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130665.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • main(argc,argv)中参数含义_c语言int char

    main(argc,argv)中参数含义_c语言int char这篇文章主要介绍了C语言中intmain(intargc,char*argv[])的两个参数详解的相关资料,需要的朋友可以参考下:转载自:https://www.jb51.net/article/107168.htm        https://www.cnblogs.com/ruixingw/p/3705918.htmlC语言中intmain(inta…

  • 我所喜欢的Drupal教程及资源

    我所喜欢的Drupal教程及资源本文转载于http://www.sayblog.me/the-drupal-tutorials-and-resourcesthat-i-like.html  Drupal是一个免费开源的内容管理系统(CMS),就跟Wordpress一样,不过要比Wordpress更具威力,也更复杂一些。Wordpress已经做得相当好了,甚至可以说已经很完美了,而且简单易用,所以它的用户比Dru

  • git的基本使用方法「建议收藏」

    git的基本使用方法「建议收藏」git的基本使用方法什么是git?git是目前世界上最先进的分布式版本控制系统。git与SVN的最主要区别?SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候用的都是自己的电脑,所以开始工作之前需要从中央服务器那里获取最新的版本,然后开始工作,工作完后,需要把自己所做的工作推送到中央服务器。集中式版本控制系统必须要联网才能工作,如果在局域网中,有足够的宽带,运行速度…

  • 阿里云ssl证书续费多少钱_怎么获取ssl证书

    阿里云ssl证书续费多少钱_怎么获取ssl证书    简单记录一下这几天处理阿里云ssl证书续费的过程遇到的问题,希望对有疑问的同学有所帮助。首先证书快到截止日期阿里云会短信通知进行提前续费。在快过期的证书旁边会有一个续费的按钮(数字证书管理服务/ssl证书/证书管理)点击续费需要进行相关设置,一般保持默认即可,点击确定就会生成订单,支付成功之后,大概五分钟左右在证书管理列表中会出现一条新的证书记录,状态为已签发;续费的证书相当于是新的证书,并不是在原来的证书基础上延长有效期。故证书管理中会显示所有的证书记

  • 录制gif工具_GIF录制

    录制gif工具_GIF录制LicecapforMac下载地址下载完成后打开软件,界面如下图。整个软件界面为透明层,左下角可以设置图片FPS,右下角又两个按钮,分别为录制按钮和停止按钮。鼠标移动至软件边框处可以改变软件界面大小,这个大小就是你将要录制的界面大小。点击右下角record录制按钮,选择保存位置后,开始录制。点击录制按钮后,软件透明区域中的模拟器变为了可操作区域,进行一些操作后,点击stop停止按钮。在保存位置处生成一张gif图片。注意:发现无法录屏,可以通过设置打开录屏权限…

  • curl转让query string逃生参数

    curl转让query string逃生参数

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号