关于matlab循环计算的问题:本来结果应该都是数值,但是有些出现了NaN,不知是否是程序的问题?

loadF:\b1.txt%文本中的数据都为数值型ri=b1(:,1);rm=b1(:,2);fori=61:length(ri);ari(i)=mean(ri(i-60... load F:\b1.txt%文本中的数据都为数值型
ri=b1(:,1);
rm=b1(:,2);
for i=61:length(ri);
ari(i)=mean(ri(i-60):ri(i-1));%求过去5年(即60个月)的均值
arm(i)=mean(rm(i-60):rm(i-1));%求过去5年(即60个月)rm的均值
fz1(i-60)=(ri(i-60)-ari(i))*(rm(i-60)-arm(i));
fm1(i-60)=rm(i-60)-arm(i);
zfm1(i-60)=fm1(i-60)*fm1(i-60);
fz2(i-60)=(ri(i-60)-ari(i))*(rm(i-60)-arm(i))^2;
fm2(i-60)=(rm(i-60)-arm(i))^3;
zfm2(i-60)=fm2(i-60);
for t=i-59:i-1
fz1(t)=fz1(t-1)+(ri(t)-ari(i))*(rm(t)-arm(i));%分子
fm1(t)=rm(t)-arm(i);
zfm1(t)=zfm1(t-1)+fm1(t)*fm1(t);
fz2(t)=fz2(t-1)+(ri(t)-ari(i))*(rm(t)-arm(i))^2;
fm2(t)=(rm(t)-arm(i))^3;
zfm2(t)=zfm2(t-1)+fm2(t);
end
beta(i)=fz1(i-1)/zfm1(i-1);
gamma(i)=fz2(i-1)/zfm2(i-1);
end
beta
gamma

beta和gamma的具体计算公式如下
展开
 我来答
chenfeng201
2013-03-01 · TA获得超过1103个赞
知道小有建树答主
回答量:775
采纳率:100%
帮助的人:324万
展开全部
没怎么看,那个均值是不是取错了?
ari(i)=mean(ri(i-60):ri(i-1));%求过去5年(即60个月)的均值
arm(i)=mean(rm(i-60):rm(i-1));%求过去5年(即60个月)rm的均值
你这样写的话,就不是均值了,是(ri(i-60)和ri(i-1)平均值

应该是ari(i)=mean(ri(i-60:i-1);%求过去5年(即60个月)的均值
下面的也一样
这个程序看你的样子是做循环的,其他应该不会出错
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式