程序里的这个等号是赋值的意思,也就是说把等号右边的结果赋给左边的变量。
所以,等号左边不能出现函数操作,否则就变成了逻辑判断,而hf(t+1)还没有被赋值,计算机认为它是0.
修改后的程序为:
zf=zeros(23,1);
hf(1)=0.0001259318;
for t=1:23;
hf(t+1)=exp(0.000004+0.177428*zf(t)/sqrt(hf(t))+0.808882*log(hf(t)));
end
楼主看来还不太理解计算机语言的基本逻辑,建议看看编程的入门教材。