第7章计算方法的MATLAB实现讲稿

2026/1/27 7:58:37

y2=interp1(x,y,x1,'linear');%一维线性插值 hold on

plot(x1,y2,'color','r') hold off

运行结果见图7-1。

图7-1 一维最近邻插值和线性插值

例7-5 程序: x=1:10;

y=[1800 778 518 5000 980 588 2799 528 6700 598]; plot(x,y); x1=1:0.1:10; hold on

y1=interp1(x,y,x1,'spline');%三次样条插值 plot(x1,y1,'color','r') hold off

运行结果见图7-2。

- 5 -

图7-2 三次样条插值

⒉ 基于FFT的插值

函数interpft用基于FFT的方法进行一维插值。本方法计算包含周期函数值的矢量的傅里叶变换。然后,它用更多的点计算逆傅里叶变换。该函数的调用形式为:

y=interpft(x,n)

其中,x是一个包含周期函数值的矢量,这些值在等间隔的点上采集。n是样本大小。

7.4.2 二维插值

二维插值在图像处理和可视化方面有着很重要的应用。MATLAB用函数interp2进行二维插值。该函数的一般形式为:

ZI=interp2(X,Y,Z,XI,YI,method)

其中,Z是一个矩阵数组,包含二维函数的值,X和Y为大小相同的数组,包含相对于Z的给定值。XI和YI为包含插值点数据的矩阵,method表示插值方法,为可选参数。

MATLAB提供了三种不同的插值方法进行二维插值: ●最近邻插值(method='nearest'):该方法用分区域常数曲面拟合数据,插值点的值是最近点的值;

●双线性插值(method='linear'):该方法用双线性曲面拟合数据点,插值

- 6 -

点的值是四个最近的值的组合。本方法是分区域双线性的,比双三次插值法快,并且内存消耗更少;

●双三次插值(method='cubic'):该方法用双三次曲面拟合数据点,插值点的值是16个最近点的值的组合。本方法是分区域三次的,结果的平滑性比前面两种的都好。

注意:所有这些方法都要求X和Y数据是单调的,即从点到点,要么总是递增的,要么总是递减的。应该用meshgrid函数准备这些矩阵。

例7-6 程序:

%低分辨率的peaks函数图形 [x,y]=meshgrid(-4:1:4); z=peaks(x,y); surf(x,y,z)

运行结果见图7-3。

图7-3 低分辨率的peaks函数图形

例7-7 程序:

[x,y]=meshgrid(-4:1:4); z=peaks(x,y);

[xI,yI]=meshgrid(-4:0.25:4);

zI=interp2(x,y,z,xI,yI,'nearest');%二维最近邻插值 surf(xI,yI,zI)

运行结果见图7-4。

- 7 -

图7-4 二维最近邻插值

例7-8 程序:

[x,y]=meshgrid(-4:1:4); z=peaks(x,y);

[xI,yI]=meshgrid(-4:0.25:4);

zI=interp2(x,y,z,xI,yI,'linear');%%二维双线性插值,'linear'可省略. surf(xI,yI,zI)

运行结果见图7-5。

图7-5 二维双线性插值

- 8 -


第7章计算方法的MATLAB实现讲稿.doc 将本文的Word文档下载到电脑
搜索更多关于: 第7章计算方法的MATLAB实现讲稿 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219