码迷,mamicode.com
首页 > 其他好文 > 详细

Matlab基础学习----------------------函数插值

时间:2014-10-18 11:15:25      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:matlab   函数插值   

%% 函数插值
% 比较常用的是用于实现一维数据插值的interp1,用于实现二维数据插值的interp2,lagrange,newton插值

% 一维插值
% YI=interp1(X,Y,XI,'method')
% 函数根据X和Y的值计算函数在XI处的值。X和Y已知长度相同,用来描述采样点的信息
% XI是一个向量或者标量,描述插值点
% YI是根据样本点和插值点求出的值
% 注意:XI的范围不能超过X的取值范围,否则会出现NAN错误
% method是插值方法
% 实例:
x=-pi:0.5:pi;
y=sin(x)+cos(x);
xi=-pi:0.1:pi;

% 线性插值:默认方法,该方法需要将插值点附近的两个数据点用直线连接,然后在直线上选择相应的插值点数据
yi_linear=interp1(x,y,xi,'linear');
% 最近点插值:根据已知插值点与已知数据点之间的远近程度进行插值,优先选择较近的数据点
yi_nearest=interp1(x,y,xi,'nearest');
% 3次多项式插值:根据已知数据求出一个三次多项式,根据多项式进行插值
yi_spline=interp1(x,y,xi,'cubic');
% 三次样条插值:在每个子区间构造一个三次多项式,使插值函数除了满足插值条件外,还要在各个结点处具有光滑的条件
yi_cubic=interp1(x,y,xi,'spline');% 与 YI=splineA(X,Y,XI)函数相同
figure;
hold on;
subplot(2,2,1);
plot(x,y,'ro',xi,yi_linear,'b-');
title('线性插值');

subplot(2,2,2);
plot(x,y,'ro',xi,yi_nearest,'b-');
title('最邻近插值');

subplot(2,2,3);
plot(x,y,'ro',xi,yi_spline,'b-');
title('三次样条插值');

subplot(2,2,4);
plot(x,y,'ro',xi,yi_cubic,'b-');
title('三次多项式插值');


%% 二维插值
% 可以得到一个插值曲面,思想与一维插值类似
% 二维插值得到函数z=f(x,y) 其中x和y是自变量,z是插值
% 语法
interp2(X,Y,Z,XI,YI,'method')




一维插值结果:

bubuko.com,布布扣

Matlab基础学习----------------------函数插值

标签:matlab   函数插值   

原文地址:http://blog.csdn.net/z1137730824/article/details/40208399

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!