MATLAB自带插值函数

MATLAB自带插值函数一 interp11 函数简介 MATLAB 中的插值函数为 interp1 其调用格式为 yi interp1 x y xi method 其中 x y 为初始插值点 xi 为给定的插值点 yi 为在被插值点 xi 处的插值结果 method 表示采用的插值方法 MATLAB 提供的插值方法有几种 nearest 是最邻近插值 linear 线性插值 sp

一、interp1

1、函数简介

   MATLAB中的插值函数为interp1,其调用格式为:yi= interp1(x,y,xi,’method’),

   其中x,y为初始插值点,xi为给定的插值点,yi为在被插值点xi处的插值结果。

2、用法示例

% 绘制散点图 clc clear close tem=[2 2 0 2 2 2 2 3 5 7 9 10 11 12 12 11 10 9 7 7 6 6 5 5]; time=1:24; plot(time,tem,'o') hold on % 第一种用法 xq=1:0.1:24; vq=interp1(time,tem,xq); plot(xq,vq) %绘制插值曲线 close %第二种用法 % linear 线形(默认) % nearest 临近点 % next 下一个 % previous 前一个 % pchip 保形分段三次插值 % cubic % v5cubic % spline 三次方样条数据插值 % 线性 subplot(2,3,1) xq=1:0.5:24; vq=interp1(time,tem,xq,'linear'); plot(xq,vq,'*') title('linear') % 临近点 subplot(2,3,2) xq=1:0.5:24; vq=interp1(time,tem,xq,'nearest'); plot(xq,vq,'*') title('nearest') % next subplot(2,3,3) xq=1:0.5:24; vq=interp1(time,tem,xq,'next'); plot(xq,vq,'*') title('next') % previous subplot(2,3,4) xq=1:0.5:24; vq=interp1(time,tem,xq,'previous'); plot(xq,vq,'*') title('previous') % pchip subplot(2,3,5) xq=1:0.5:24; vq=interp1(time,tem,xq,'pchip'); plot(xq,vq,'*') title('pchip') % spline subplot(2,3,6) xq=1:0.5:24; vq=interp1(time,tem,xq,'spline'); plot(xq,vq,'*') title('spline'); close % 第三种 取出插值多项式的系数 %v = ppval(pp,xq) 在查询点 xq 处计算分段多项式 pp。 x=0:0.5:2*pi; y=sin(x); p=interp1(x,y,'spline','pp'); %% 返回各个分段插值多项式p的系数 yy=ppval(p,linspace(0,2*pi,101)); plot(x,y,'o',linspace(0,2*pi,101),yy); % 第四种 x=0:0.5:2*pi; y=sin(x); xi=-1:0.2:7; p=interp1(x,y,xi,'spline') ;%插值区间xi超出样本区间x自动外推 p=interp1(x,y,xi,'linear','extrap'); %加上'extrap'自动外推 plot(x,y,'o',xi,p); p=interp1(x,y,xi,'next','extrap'); %加上'extrap'自动外推 p=interp1(x,y,xi,'nearest',9);%令超出范围的数值为9

二、spline三次样条插值

1、函数简介

MATLAB中的插值函数为interp1,其调用格式为:yi= spline(x,y,xi),

其中x,y为初始插值点,xi为给定的插值点,yi为在被插值点xi处的插值结果。

2、用法示例

%第一种 单条曲线插值 x=0:0.5:2*pi; y=sin(x); xx=0:0.1:2*pi; yy=spline(x,y,xx); plot(x,y,'o',xx,yy,'-') close % 第二种 多条曲线插值 x=0:0.5:2*pi; y=[sin(x);cos(x)]; xx=0:0.1:2*pi; yy=spline(x,y,xx); plot(x,y,'o',xx,yy,'-') % 第三种 取出插值多项式的系数 x=0:0.5:2*pi; y=sin(x); p=spline(x,y); %返回各个分段插值多项式p的系数 xx=0:0.1:2*pi; yy=ppval(p,xx); %v = ppval(pp,xq) 在查询点 xx 处计算分段多项式 p。 plot(x,y,'o',xx,yy) 

三、pchip 分段三次 Hermite 插值多项式

1、函数简介

其函数使用方法跟以上的类似,我们这里直接上代码。

2、函数代码

%第一种 x=0:0.5:2*pi; y=sin(x); xx=0:0.1:2*pi; yy=pchip(x,y,xx); plot(x,y,'o',xx,yy,'-') % 第二种 取出插值多项式的系数 x=0:0.5:2*pi; y=sin(x); p=pchip(x,y); xx=0:0.1:2*pi; yy=ppval(p,xx); %v = ppval(pp,xq) 在查询点 xx 处计算分段多项式 pp。 plot(x,y,'o',xx,yy)

 

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233962.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 前端语音信号处理

    前端语音信号处理1、语音活动检测语音活动检测(VoiceActivityDetection,VAD)用于检测出语音信号的起始位置,分离出语音段和非语音(静音或噪声)段。VAD算法大致分为三类:基于阈值的VAD、基于分类器的VAD和基于模型的VAD。基于阈值的VAD是通过提取时域(短时能量、短时过零率等)或频域(MFCC、谱熵等)特征,通过合理的设置门限,达到区分语音和非语音的目的;基于分类…

    2022年5月25日
    56
  • css自动换行属性与保留空白属性冲突_css换行样式

    css自动换行属性与保留空白属性冲突_css换行样式word-break属性规定自动换行的处理方法。提示:通过使用word-break属性,可以让浏览器实现在任意位置的换行。所有主流浏览器都支持word-break属性。语法:word-break:normal|break-all|keep-all;normal使用浏览器默认的换行规则。break-all允许在单词内换行。keep-all只能在半角空格或连字符处换行。word-break:break-all所有的都换行,右侧换行没有空隙。word-wrap属性允许

    2025年6月27日
    2
  • JavaScript的数据类型详细介绍

    JavaScript的数据类型详细介绍JavaScript 的数据类型分为俩种 一种是基本数据类型 一种是引用数据类型基本数据类型包括 Number 数字 String 字符串 Boolean 布尔值 Undefined 未定义 Null 空的 Symbol 符号 引用数据类型包括 1 Object 对象 2 Array 数组

    2025年12月3日
    2
  • Ubuntu20.04环境下安装pip过程遇到问题总结「建议收藏」

    Ubuntu20.04环境下安装pip过程遇到问题总结「建议收藏」今天新装了Ubuntu环境,需要开发Python的代码,需要装一些环境,在安装过程中pip的安装总是出现问题,尝试了很多的方法才成功,下面把我遇到的问题做一下总结:Ubuntu环境如下:下载包的路径在文章末尾问题1:无法定位软件问题:解决办法:修改Ubuntu的软件源就能解决无法定位软件包的问题问题2:安装setuptools报错问题解决办法:执行命令:sudo apt-get install python3-distutils结果如下:正在读取软件包列表… 完成正在分析软件包的

    2022年8月11日
    7
  • Tasker使用企业微信api推送消息到普通微信「建议收藏」

    Tasker使用企业微信api推送消息到普通微信「建议收藏」注册https://work.weixin.qq.com/wework_admin/register_wx注册成功进入管理后台—>我的企业—>微工作台—>邀请关注*使用普通微信关注后才能接收消息应用与小程序—>创建应用*可见范围可以选整个企业企业ID我的企业—>…

    2022年5月23日
    61
  • byte类型数据

    byte类型数据今儿一个小朋友问我一件事情 Java 的 byte 类型的数据范围是从 128 到 127 一直在想为什么不是 128 到 128 呢 首先我们得明白一件事情 那就是运算规则 正数的最高位都是 0 正数的值就是二进制表示的值 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 负数的最高位都是 1 负数的值是取反后加一然后加个负号得到得值 nbsp nbsp nbsp nbsp nbsp nbsp

    2025年9月28日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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