MATLAB插值函数

2012-08-27 16:11:48|  分类: Matlab |举报|字号 订阅

matlab中常用的差值函数:

interp1 ,interplq ,interpft, spline, intep2, interp3, interpN.

2012a中有interp1,interp1q, interpft, spline, pchip, interp2, interp3, interpn, ppval

interp1

其调用格式为:  yi= interp1(x,y,xi,'method')

其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 'method'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'cubic'立方插值.缺省时表示线性插值

interpft 利用FFT插值

interp1q函数

作用:形成线性插值函数。

格式: z=interp1q( x , y , xi)

它返回一个列向量,其中值为一元线性插值函数z在点xi的对应值,列向量x,y确定控制点下的水平和垂直坐标,x中的元素值必须单调递增,向量z的长度与x的相等。

例如:>>z=interp1q([0 255]’,[0 255]’,[0:255]’)

>>plot([0 255],[0 255],'o',[0:255],z)

会产生一个有256个元素的一对一的映射来连接控制点(0,0)和(255,255)——即,z=[0 1 2…255]’。

interpft()

在MATLAB中,一维快速傅立叶插值通过函数interpft()来实现,该函数利用傅立叶变换将输入数据变换到频域,然后用更多点的傅立叶逆变换,变换回时域,其结果是对数据进行增采样。调用格式如下。

y=interpft(x, n):对x进行傅立叶变换,然后采用n点傅立叶反变换,变回到时域。如果x是一个向量,数据x的长度为m,采样间隔为dx,则数据y的采样间隔是dx×m/n,其中n必须大于m。如果x是矩阵,该函数对矩阵x的列进行操作,其返回的结果y与x具有相同的列,行数为n。

y=interpft(x, n, dim):在dim指定的维度上进行操作。

【例5-13】 利用一维快速傅立叶插值实现数据增采样,其实现的MATLAB代码如下:

clear all;

x=0:1.1:8;

y=sin(x);

n=2*length(x);                %增采样1倍

yi=interpft(y,n);            %采用一维快速傅立叶插值

xi=0:0.55:8.3;                %要插值的数据

figure;                        %画图显示

hold on;

plot(x,y,'ro',xi,yi,'b-');

legend('原始数据','插值后结果');

spline函数

作用:形成三次插值(cubic spline interpolation )

格式: z=spline(x , y ,xi)

列向量x,y确定控制点下的水平和垂直坐标,x中的元素值必须单调递增,向量z的长度与x的相等

----------------------------------另---------------------

在MATLAB中,三次样条插值可以采用函数spline(),该函数的调用格式如下。

yi=spline(x, y, xi):通过初始数据 产生插值函数 ,然后对数据xi进    行插值,返回值 。采用这种调用方式时,其相当于yi=interp1(x, y, xi, 'spline')。

pp=spline(x, y):该函数通过对初始数据x和y产生插值函数,并进行返回。然后利用函数ppval()对数据xi进行插值计算,其调用方式为yi=ppval(pp, xi),其中pp为插值函数。

--------------------------------------------------------------

例子:>>x = 0:10;

>>y = sin(x);

>>xx = 0:.25:10;

>>yi = interp1(x,y,xx);          %interp1 q是interp1的特例

>>plot(x,y, ‘0’,xx,yi)

>>yy = spline(x,y,xx);

>>plot(x,y,'o',xx,yy)

interp2()进行二维插值,其调用格式如下。

zi=interp2(x, y, z, xi, yi):通过初始数据x、y和z产生插值函数y = f(x, y),返回值zi是(xi, yi)在函数f(x, y)上的值。

zi=interp2(x, y, z, xi, yi, method):其中method为可疑采用的插值方法。二维插值采用的方法有4种,分别是'nearest'、'linear'、'spline'和'cubic',其中线性插值为默认的插值方法。

zi=interp2(x, y, z, xi, yi, method, extrapval):当数据超过原始数据范围时,用extraval进行替代的一种外推方法。

【例5-14】 二维插值函数实例分析,分别采用'nearest'、'linear'、'spline'和'cubic'进行二维插值,并绘制三维表面图。其实现的MATLAB代码如下:

>> clear all;

[x,y]=meshgrid(-4:0.8:4);                        %原始数据

z=peaks(x,y);

[xi,yi]=meshgrid(-4:0.2:4);                        %插值数据

zi_nearest=interp2(x,y,z,xi,yi,'nearest');        %临近点插值

zi_linear=interp2(x,y,z,xi,yi);                %系统默认为线性插值

zi_spline=interp2(x,y,z,xi,yi,'spline');        %三次样条插值

zi_cubic=interp2(x,y,z,xi,yi,'cubic');            %三次多项式插值

figure;                                            %数据显示

hold on;

subplot(321);

surf(x,y,z);                                    %绘制原始数据点

title('原始数据');

subplot(322);

surf(xi,yi,zi_nearest);                            %绘制临近点插值的结果

title('临近点插值');

subplot(323);

surf(xi,yi,zi_linear);                            %绘制线性插值的结果

title('线性插值');

subplot(324);

surf(xi,yi,zi_spline);                            %绘制三次样条插值的结果

title('三次样条插值');

subplot(325);

surf(xi,yi,zi_cubic);                            %绘制三次多项式插值的结果

title('三次多项式插值');

interp3()

在MATLAB中,采用函数interp3()进行三维插值,该函数的调用格式如下。

vi=interp3(x, y, z, v, xi, yi, zi):该函数通过初始数据 产生插值函数 ,然后对数据 进行插值,返回值为vi。

vi=interp3(x, y, z, v, xi, yi, zi, method):该函数中method为可以采用的插值方法,共有4种,分别是'nearest'、'linear'、'spline'和'cubic',其中线性插值为默认的插值方法。

【例5-16】 利用函数interp3()进行三维插值,代码如下:

clear all;

[x,y,z,v]=flow(10);

[xi,yi,zi]=meshgrid(.1:.25:10,-3:.25:3,-3:.25:3);        %创建网格数据

vi = interp3(x,y,z,v,xi,yi,zi);                             % vi为25*40*25

slice(xi,yi,zi,vi,[6 9.5],2,[-2 .2]);

shading flat

N维插值函数 interpN( )

其中N可以为2,3,…,如N=2为二维插值,调用格式为

zi=interp2(x,y,z,Xi,Yi,’method’)

其中x,y为横纵坐标上的坐标点,{(x,y)}=mashgrid(x,y)生成平面网格点,z为观测到的在网格点上的二元函数值.{(x,y,z)}构成空间插值节点.引入两个向量xi,yi.xi为横坐标上的插值点,yi为纵坐标上的插值点.便可给出

[Xi,Yi]=meshgrid(xi,yi)

zi为新的或者是加细了的网格点上产生的插值结果(函数值).

'method'   表示采用的插值方法.`nearest`   最邻近插值,`linear`线性插值,`cubic`双三次插值.缺省时表示线性插值.所有的插值方法都要求x和y是单调的网格,x和y可以是等距的也可以是不等距的.

matlab中的插值计算函数,MATLAB中的插值函数|全国大学生数学建模竞赛(CUMCM)|MATLAB技术论坛 - Powered by Discuz!...相关推荐

  1. 全国大学生数学建模竞赛禁用MATLAB?这届哈工大学生太难了

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 [导读]全国大学生数学建模竞赛开赛在即,但有消息传来,此次比赛哈工大的学生将被禁止使用MathWork ...

  2. 2011高教社杯全国大学生数学建模竞赛题目(MATLAB)

    问题描述 2011高教社杯全国大学生数学建模竞赛题目 (请先阅读"全国大学生数学建模竞赛论文格式规范") A题 城市表层土壤重金属污染分析 随着城市经济的快速发展和城市人口的不断增 ...

  3. 1998年全国大学生数学建模竞赛A题——投资的收益和风险数模P133|lingo,matlab

    1998年全国大学生数学建模竞赛A题 目录 题目 问一 用lingo求解 用matlab求解 问2 题目 市场上有n 种资产(如股票.债券.-)Si ( i=1,-n) 供投资者选择,某公司有数额为M ...

  4. 华为杯数学建模2020获奖名单_我校在2020年全国大学生数学建模竞赛中再获佳绩(内附获奖名单)...

    # 近日,从全国大学生数学建模竞赛组委会获悉,我校在2020年全国大学生数学建模竞赛中获得5项国家二等奖.国家奖获奖数量在全国农林院校中并列排名第二.在黑龙江省高校中位居第三名. 1 你的喜悦,我们的 ...

  5. 全国大学生数学建模竞赛2011B题交巡警服务平台的设置与调度MATLAB程序与LINGO程序

    目录 一.第1问 二.第2问 三.第3问 四.第4问 五.第5问 一.第1问 %第1问MATLAB程序 %% 对应计算两点间距离(A区) a=xlsread('2011B.xls','全市交通路口节点 ...

  6. 2022年高教社杯全国大学生数学建模竞赛-【赛题解析篇】B题:无人机遂行编队飞行中的纯方位无源定位(附Python代码实现)

    前言 最近发现一个关于数学建模比较好的专栏,需要的小伙伴可移步[数学建模应用]算法实战案例精讲300篇(持续更新ing) 赛题描述 无人机集群在遂行编队飞行时,为避免外界干扰,应尽可能保持电磁静默,少 ...

  7. 全国大学生数学建模竞赛2019C题机场的出租车问题MATLAB程序

    目录 前言 一.第1问 1.1 计算模型中等待时间t2MATLAB程序 1.2 计算模型中等待时间t2(灵敏度分析)MATLAB程序 二.第2问 2.1 代入t2到模型进行计算MATLAB程序 2.2 ...

  8. 全国大学生数学建模竞赛2012A题葡萄酒的评价MATLAB程序

    目录 一.第1问 1.1 单因素方差分析MATLAB程序 1.2 置信区间长度MATLAB程序 1.3 Q-Q图MATLAB程序 二.第2问 2.1 主成分分析--成分个数MATLAB程序 2.2 主 ...

  9. matlab 电路频率响应_2020年中青杯全国大学生数学建模竞赛——A题 集成电路通道布线...

    A题做完了. ------------------------------ 背景: 电路设计与实现需要借助专用计算机软件才能完成,该类软件统称为电子设计自动化工具. 电路设计的一个重要阶段称为&quo ...

  10. 交巡警求全市距离MATLAB程序,高教社杯全国大学生数学建模竞赛B题参考答案

    交巡警服务平台的设置与调度优化分析 摘 要 本文以实现警察的刑事执法.治安管理.交通管理.服务群众四大职能为宗旨,利用有限的警务资源,根据城市的实际情况与需求合理地设置了交巡警服务平台.分配各平台的管 ...

最新文章

  1. oracle基础-基本的查询,以及pl/sql登录
  2. Python变量作用域问题
  3. NB!技术人都在关注的公众号~
  4. leetcode 141. Linked List Cycle
  5. 高可用的 MFS 文件分布式系统(Drdb+heartbeat+MFS )
  6. 信安教程第二版-第23章云计算安全需求分析与安全保护工程
  7. html 最小长度单位,html见长度单位尺寸单�?CSS布局HTML
  8. mysql——解压版安装详解
  9. LA3485二分+求解积分方程+辛普森算法计算积分
  10. matlab中modred,计算机仿真技术(中南大学)3系统模型及转换.ppt
  11. pe卸载win10更新补丁_Win10怎么卸载有问题更新补丁|Win10卸载更新补丁
  12. 最好的都在这里了 2016上半年电影豆瓣口碑排行榜
  13. 统计局解读1月制造业采购经理指数:服务业回升明显
  14. java 读取csv文件乱码_java读取csv文件乱码怎么解决
  15. html背景图片溢出,如何清除背景图片溢出?
  16. 游戏开发相关书籍推荐,简介
  17. 2017第四届“云鼎奖”申报火热进行中
  18. 使用Inno Setup软件直接给安装程序和卸载程序加数字签名
  19. Effective Java读书笔记---二、创建和销毁对象
  20. html a/ a标签使用总结

热门文章

  1. c++ 开根号程序 算法实现 C++函数同时返回两个值
  2. Ant Design 遭删库!
  3. 微信小程序 share-element page-container 组件的使用
  4. win10如何安装Java虚拟机_vmware 安装win10虚拟机
  5. QPainter基本绘图【1】
  6. xps15u盘装linux,戴尔xps15系统重装图文教程
  7. windows android ndk开发,Windows系统下配置Android NDK开发环境
  8. 17-03-21 课堂笔记
  9. https抓包与防抓包
  10. 软件设计师考试真题链接