一、interp1

1、函数简介

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

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

'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 
  'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'pchip'立方插值.缺省时表示线性插值
   注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。

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)

MATLAB自带插值函数相关推荐

  1. matlab自带拉格朗日插值,MATLAB实现拉格朗日插值

    <MATLAB实现拉格朗日插值>由会员分享,可在线阅读,更多相关<MATLAB实现拉格朗日插值(14页珍藏版)>请在人人文库网上搜索. 1.实用标准文档文案大全数值分析上机报告 ...

  2. matlab自带的插值函数interp1的几种插值方法

    插值法 插值法又称"内插法",是利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这种方法称为插值法 ...

  3. MATLAB可视化实战系列(四十)-基于MATLAB 自带手写数字集的CNN(LeNet5)手写数字识别-图像处理(附源代码)

    一.前言 利用MATLAB实践MNIST手写数字识别,下载手写数据集的准备工作有些麻烦. 以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟! MATLAB-30 ...

  4. Matlab 自带机器学习算法汇总

    [引言] 今天突然发现MATLAB 2015a的版本自带了许多经典的机器学习方法,简单好用,所以在此撰写博客用以简要汇总(我主要参考了MATLAB自带的帮助文档). MATLAB每个机器学习方法都有很 ...

  5. cameraman matlab 自带图,[转载]【MATLAB】MATLAB的自带数据及可生成数据的函数——图片形式...

    有时我们需要验证一些算法,但又不方便使用自己的数据,这时使用MATLAB自带的数据会带来很多便利,方便交流并且也不用担心未发表的工作会泄露.这里整理了一些MATLAB自带的数据-- 说明:[数据]表示 ...

  6. matlab怎么画map图,用MATLAB自带的worldmap及相关函数画地图

    本文主要介绍MATLAB的函数-worldmap,包括使用语法.参数和栗子 语法 worldmap region worldmap(region) worldmap worldmap(latlim,l ...

  7. matlab自带的优化工具箱,MATLAB 自带优化工具箱(optimization Tool)之遗传算法简述...

    MATLAB 自带优化工具箱(optimization Tool)之遗传算法简述 MATLAB 自带优化工具箱(optimization Tool)之遗传算法简述 MATLAB 自带优化工具箱(opt ...

  8. [MATLAB] 图像的插值算法1:MATLAB中的插值函数及其原理

    MATLAB图像插值算法文章集: 插值函数及其原理 https://blog.csdn.net/Effend/article/details/82870144 最近邻插值 https://blog.c ...

  9. MATLAB自带PCA函数的参数含义及使用方法

    目录 1.PCA函数的输入与输出参数 2.PCA函数的使用方法 参考文献: 1.PCA函数的输入与输出参数 function [coeff, score, latent, tsquared, expl ...

  10. matlab计算绝对值的导数,如何用matlab求带绝对值函数的导数? 你值得一看的技巧...

    用matlab求函数的导数:如果一个函数表达式中有绝对值,那对该函数求导就需要注意啦!该函数可能在他的零点处导数不存在,所以我们不能用传统的方法求导,应该在零点处分别求左导数和右导数,如果左导数和右导 ...

最新文章

  1. 七丶青龙nvjdc部署教程+短信验证登录对接傻妞
  2. 用VuePress搞定你的博客(一)
  3. java compareTo() 用法注意点
  4. js input点击事件_Vue.js的旅程,简单的todo实例「602」
  5. eclipse关闭讨厌的菜单
  6. linux home目录重装,Linux/centos 卸载重装
  7. oracle添加路由,创建持久性(静态)路由
  8. ES6 Number
  9. 数字电路:设计《三个开关控制一个灯的电路》
  10. js判断是否是数组的几种方法
  11. 蓝牙音箱CSR芯片系列解密
  12. 177、模拟行走机器人
  13. 钉钉小程序内嵌web网页
  14. 如何搞懂html+php实现个人博客网站?【附代码详解】毕业设计 大作业项目
  15. 修改ECharts显示的图例legend的形式
  16. 飞塔防火墙的配置与策略
  17. 高手教你ie主页被篡改怎么办|加个参数永远不怕IE主页被修改
  18. iOS图案解锁(九宫格)
  19. linux平台Android studio安装步骤
  20. git报错:ssh: Could not resolve hostname gitlab.yto.net.cn:

热门文章

  1. 群体智能和进化计算-介绍
  2. matlab二重积分运算,matlab二重积分
  3. 【Python爬虫】获取全国客运列车车次及起讫站点位置信息
  4. 系列学习 Gateway 之第 4 篇 —— 网关限流
  5. 学习残差神经网络(ResNet)
  6. 工程师笔记 | 嵌入式工程师常用软件
  7. 3D打印是什么?如何工作的?
  8. 软考中级软件设计师-加密技术(自用)
  9. js跨域访问的超简单方法
  10. QML QtLocation地图应用学习-4:行政区划