- 积分
- 105
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-12-2
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我的数据是55年的降雨数据,时间长度就是55年的 数据在excel中共两列,第一列是年份 第二列是降水量。我用了论坛里面一个代码,在matlab里面运行,但是一直出现问题。下面是源代码:
%% 读取数据
myData=xlsread('C:\Users\thk229\Desktop\降水.xls'); % 读取数据
timeSeries=myData(55,1); % 时间序列数据
dataSeries=myData(55,2); %
dataCount=length(dataSeries);
step=5; % 步长
v=step+step-2; % 计算自由度
ttest=2.878; % 查表得t检验值,修改
len1=step;
len2=step;
x=timeSeries(step:dataCount-step);
for i=step:dataCount-step
n1=dataSeries(i-step+1:i);
n2=dataSeries(i+1:i+step);
mean1=mean(n1);
mean2=mean(n2);
c=(len1+len2)/(len1*len2);
var1=1/len1*sum((n1-mean1).^2);
var2=1/len2*sum((n2-mean2).^2);
delta1=len1*var1+len2*var2;
delta=delta1/(len1+len2-2);
t=(mean1-mean2)/sqrt(delta*c);
end
figure(1);
plot(x,t,'r-','linewidth',1.5);
xlabel('t (year)','FontName','TimesNewRoman','FontSize',12);
ylabel('统计量','FontName','TimesNewRoman','Fontsize',12);
axis([min(x),max(x),-4,4]);
hold on
plot(x,0*ones(i-step+1,1),'-.','linewidth',1);
plot(x,ttest*ones(i-step+1,1),':','linewidth',1.5);% 更改数字
plot(x,-ttest*ones(i-step+1,1),':','linewidth',1.5);% 更改数字
legend('t统计量','0.01显著水平');
运行中出现Undefined function or variable 't'.
Error in MTT (line 28)
plot(x,t,'r-','linewidth',1.5);
作为一个程序盲,求大神帮个忙解决下。
下面是excel数据中的与部分
1961 1675.048
1962 1579.475
1963 1216.271
1964 1785.912
1965 1425.281
1966 1453.212
1967 1515.916
1968 1617.055
1969 1881.044
1970 1869.862
1971 1324.52
1972 1629.744
1973 1804.941
1974 1500.631
1975 1857.92
1976 1532.249
1977 1952.183
1978 1166.367
1979 1315.697
1980 1597.34
1981 1472.425
1982 1513.783
|
|