如何在Matlab中推断出更高的值?

时间:2015-11-19 16:07:32

标签: matlab extrapolation

我有以下数据:

T=[0,100,300]

a=[2.8796,2.8785,2.886]

我想要推断并了解我在Matlab中a会得到什么T=600。 我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

如果是线性的,下面的代码解决了这个

clear all
close all

T=[0,100,300];
a=[2.8796,2.8785,2.886];
reg = polyfit(T,a,1);

figure
hold on
plot(T,a,'bx')
plot(T,reg(2)+T.*reg(1),'k-')
plot(600,reg(2)+600*reg(1),'ro')
plot(600,interp1(T,a,600,'linear','extrap'),'md')
legend('observations','lin. regression','pred. at 600p polyfit','pred. at 600p interp1')

val_polyfit = reg(2)+600*reg(1)
val_interp1 = interp1(T,a,600,'linear','extrap')
diff = val_polyfit/val_interp1

产量

val_polyfit =

    2.8924


val_interp1 =

    2.8972


diff =

    0.9983

答案 1 :(得分:2)

对于线性插值: aextra = interp1(T,a,600,'linear','extrap')