转自:https://blog.csdn.net/yiqianmingyang/article/details/
MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,’method’)
其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, ‘method’表示采用的插值方法,MATLAB提供的插值方法有几种: ‘method’是最邻近插值, ‘linear’线性插值; ‘spline’三次样条插值; ‘cubic’立方插值.缺省时表示线性插值
注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
例如:在一 天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为
12,9,9,10,18 ,24,28,27,25,20,18,15,13,
推测中午12点(即13点)时的温度.
结果为: 27.8725
若要得到一天24小时的温度曲线,则:
xi=0:1/3600:24;
yi=interp1(x,y,xi, ‘spline’);
plot(x,y,’o’ ,xi,yi)

- >>x = 0:10; y = x.*sin(x);
- >>xx = 0:.25:10; yy = interp1(x,y,xx);
- >>plot(x,y,’kd’,xx,yy)
复制代码
例2
- >> year = 1900:10:2010;
- >> product = [75.995 91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505
- 249.633 256.344 267.893 ];
- >>p1995 = interp1(year,product,1995)
- >>x = 1900:1:2010;
- >>y = interp1(year,product,x,’pchip’);
- >>plot(year,product,’o’,x,y)
复制代码
插值结果为:
- p1995 =
- 252.9885
复制代码
- >>[X,Y] = meshgrid(-3:.25:3);
- >>Z = peaks(X,Y);
- >>[XI,YI] = meshgrid(-3:.125:3);
- >>ZZ = interp2(X,Y,Z,XI,YI);
- >>surfl(X,Y,Z);hold on;
- >>surfl(XI,YI,ZZ+15)
- >>axis([-3 3 -3 3 -5 20]);shading flat
- >>hold off
复制代码
例4:
- >>years = 1950:10:1990;
- >>service = 10:10:30;
- >>wage = [150.697 199.592 187.625
- 179.323 195.072 250.287
- 203.212 179.092 322.767
- 226.505 153.706 426.730
- 249.633 120.281 598.243];
- >>w = interp2(service,years,wage,15,1975)
复制代码
插值结果为:
- w =
- 190.6288
复制代码
- >>[x,y,z,v] = flow(20);
- >>[xx,yy,zz] = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3);
- >>vv = interp3(x,y,z,v,xx,yy,zz);
- >>slice(xx,yy,zz,vv,[6 9.5],[1 2],[-2 .2]); shading interp;colormap cool
复制代码
- >>x = [0 2 4 5 8 12 12.8 17.2 19.9 20]; y = exp(x).*sin(x);
- >>xx = 0:.25:20;
- >>yy = spline(x,y,xx);
- >>plot(x,y,’o’,xx,yy)
复制代码
- [X,Y] = meshgrid(1:3,10:14)
复制代码
计算结果为:
- X =
- 1 2 3
- 1 2 3
- 1 2 3
- 1 2 3
- 1 2 3
- Y =
- 10 10 10
- 11 11 11
- 12 12 12
- 13 13 13
- 14 14 14
复制代码
- >>tab = [(1:4)’ hilb(4)]
- >>y = table1(tab,[1 2.3 3.6 4])
复制代码
查表结果为:
- >>tab = [(1:4)’ hilb(4)]
- >>y = table1(tab,[1 2.3 3.6 4])
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229095.html原文链接:https://javaforall.net
