您的位置:首页 > 编程语言 > MATLAB

利用Matlab拟合时序植被生长季曲线,并求解物候参数

2015-10-29 09:47 1671 查看
       如下图所示,为经HANTS谐波分析后的单个像元处植被生长季曲线,现在用一个一元六次多项式来拟合曲线,并求解物候参数(始期、末期),在Matlab中编程实现:



代码:
Year0=zeros(38998,1);
for i=1:1:38998
if M(i,:)==0
continue;
end
corrcoficent=polyfit(x,M(i,:),6);
N=[corrcoficent(1),corrcoficent(2),corrcoficent(3),corrcoficent(4),corrcoficent(5),corrcoficent(6),corrcoficent(7)-shreold(i)];
year=roots(N);
for j=1:1:6
if isreal(year(j)) && year(j)>210 && year(j)<360
Year0(i)=year(j);
end
end
fprintf(num2str(i));fprintf('\n');
end
fprintf('\n');
fprintf('Done');代码解释:
思路:通过已有影像的38998个像元值,建立一元六次多项式,并获取系数,从而得到一元六次多项式的具体表达式,再通过在曲线上选取物候阈值(Excel中求取的动态阈值)所对应的天数来逐行(逐像元)反解物候期所对应的天数。

1、Year0=zeros(38998,1):声明一个38998行1列的数组

2、corrcoficent=polyfit(x,M(i,:),6):获取系数

3、N:六个根

4、Year0里面保存最后结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: