我有以下定义
long = 1000;
init = 500;
N = init+long;
T = init+1:N-1;
T1 = init+2:N;
然后我根据这个循环填充我想要的向量,
for t=1:N+1
Rk(t)=1+A(t)*alpha*kh(t).^(alpha-1)-delta;
Yi(t)=A(t)*(1-alpha)*kh(t).^alpha - A(t)*alpha*kh(t).^(alpha-1)+eta(t);
Rap(t)=Rk(t).^(1-gamma)+(1-gamma)*Rk(t).^(-gamma)*theta(t)*Yi(t)-0.5*gamma*(1-gamma)*(theta(t)*Yi(t)).^2;
end
最后,我根据这个循环计算了一些新的向量
for t=T1
fi1(t)=(v(t).^(1-gamma))*(Rk(t))*(Yi(t)'); % Expectations 1
fi2(t)=((v(t).^(1-gamma))*(Yi(t)).^2);
fi3(t)=(((v(t).^(1-gamma))*Rap(t)).^(1/(1-gamma)));
end
所以,从最后一个循环开始,我的目标是获得一个大小为 T1 的向量,但我收到的是一个 1x1500 的向量。
我的范围基本上是从 T1 指定的区域(即 502:1500)中获取向量 v、Rk、Yi 中的所有数字,所以我应该得到 1x999,而不是 1x1500 向量。
所以我想即使有人用索引502来计算循环,Matlab仍然将其理解为1,并循环直到N,即T1的终点。
有人可以告诉我应该如何修改代码以获得我上面描述的内容。