用matlab相关分析,基于matlab的逐像元偏相关分析
本文介紹基于matlab的逐像元的三者間的偏相關(guān),以產(chǎn)水,NPP和土壤保持為例進行說明
具體代碼如下:
%將三者多年的數(shù)據(jù)放在三個不同的矩陣中
[a,R]=geotiffread('F:\校級課題項目\data\屏障帶\2002water_yield.tif');%先導(dǎo)入投影信息
info=geotiffinfo('F:\校級課題項目\data\屏障帶\2002water_yield.tif');
nppsum=zeros(size(a,1)*size(a,2),16);
for year=2000:2015
filename=strcat('F:\校級課題項目\data\屏障帶\',int2str(year),'npp.tif');
data=importdata(filename);
data=reshape(data,size(a,1)*size(a,2),1);
nppsum(:,year-1999)=data;
end
scsum=zeros(size(a,1)*size(a,2),16);
for year=2000:2015
filename=strcat('F:\校級課題項目\data\屏障帶\',int2str(year),'sc.tif');
data=importdata(filename);
data=reshape(data,size(a,1)*size(a,2),1);
scsum(:,year-1999)=data;
end
wcsum=zeros(size(a,1)*size(a,2),16);
for year=2000:2015
filename=strcat('F:\校級課題項目\data\屏障帶\',int2str(year),'water_yield.tif');
data=importdata(filename);
data=reshape(data,size(a,1)*size(a,2),1);
wcsum(:,year-1999)=data;
end
%控制NPP,看產(chǎn)水和土壤保持的偏相關(guān)
rho_value=zeros(size(a,1),size(a,2))+nan;
p_value=zeros(size(a,1),size(a,2))+nan;
for i=1:size(a,1)*size(a,2)
nppdata=nppsum(i,:);
if min(nppdata)>0
nppdata=nppdata';
scdata=scsum(i,:)';
wcdata=wcsum(i,:)';
[rho,p]=partialcorr(scdata,wcdata,nppdata);%注意,控制的變量放在最后面
rho_value(i)=rho;
p_value(i)=p;
end
end
rho_value(p_value>0.05)=NaN;
filename='F:\課題項目\data\通過顯著性0.05檢驗的產(chǎn)水和土壤保持偏相關(guān)系數(shù).tif';
geotiffwrite(filename,rho_value,R,'GeoKeyDirectoryTag',info.GeoTIFFTags.GeoKeyDirectoryTag);
更多需求,請查看個人介紹
總結(jié)
以上是生活随笔為你收集整理的用matlab相关分析,基于matlab的逐像元偏相关分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 更新页面代码,php – 自动
- 下一篇: MATLAB中如何跳过有些缺省值,MAT