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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 返回跳转指定页面的JS代码_java页面跳转的代码

    返回跳转指定页面的JS代码_java页面跳转的代码JS跳转页面参考代码第一种:window.location.href=”login.jsp?backurl=”+window.location.href;第二种:alert(“返回”);window.history.back(-1);第

    2022年8月13日
    7
  • android双缓冲技术,Android VSYNC与图形系统中的撕裂、双缓冲、三缓冲浅析

    android双缓冲技术,Android VSYNC与图形系统中的撕裂、双缓冲、三缓冲浅析先接触两个图形概念:帧率(FrameRate,单位FPS)–GPU显卡生成帧的速率,也可以认为是数据处理的速度),屏幕刷新频率(RefreshRate单位赫兹/HZ):是指硬件设备刷新屏幕的频率。屏幕刷新率一般是固定的,比如60Hz的每16ms就刷一次屏幕,可以类比一下黑白电视的电子扫描枪,每16ms电子枪从上到下从左到右一行一行逐渐把图片绘制出来,如果GPU显卡性能非常强悍,帧率可以…

    2022年5月11日
    47
  • 傅里叶变换概念及公式推导

    傅里叶变换概念及公式推导傅里叶变换傅里叶变换的目的是可将时域(即时间域)上的信号转变为频域(即频率域)上的信号,随着域的不同,对同一个事物的了解角度也就随之改变,因此在时域中某些不好处理的地方,在频域就可以较为简单的处理。傅里叶变换公式:(w代表频率,t代表时间,e^-iwt为复变函数)傅里叶变换认为一个周期函数(信号)包含多个频率分量,任意函数(信号)f(t)可通过多个周期函数(基函数)相加而合成。从物理角度

    2022年7月17日
    45
  • java按位取反运算符_二进制按位取反

    java按位取反运算符_二进制按位取反“~”运算符在c、c++、java、c#中都有,要弄懂这个运算符的计算方法,首先必须明白二进制数在内存中的存放形式,二进制数在内存中是以补码的形式存放的。另外正数和负数的补码不一样,正数的补码,反码都是其本身,既:正数9(二进制为:1001)在内存中存储为01001,必须补上符号位(开头的0为符号位)。补码为01001反码为01001,其中前面加的0是符号位,负数的

    2022年8月14日
    7
  • java高并发下数据入库

    java高并发下数据入库java高并发下数据批量入库该服务利用线程池并结合缓存类来处理高并发下数据入库问题,做到实时数据存入redis和数据批量入库,使用的时候需要修改为自己的业务数据,该服务暂时适合下面两种情况:1、达到设置的超时时间。2、达到最大批次。packageio.renren.service.impl;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importlombok.extern.slf4j.Slf

    2022年5月19日
    32

发表回复

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

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