滚动时间窗口。在Matlab中循环矢量(i)

时间:2015-02-18 15:03:39

标签: loops vector return

我有一个矢量(276,1),每月有S& P500回报。我需要的是127个载体,只有150个月的时间框架。所以我的整个数据来自Jan 91 - Dez 14.我想要vector1 = vector(1:150),vector2 = vector(2:151),.... vector127 = vector(127:276)。

我在MATLAB中试过这个,但是出现了错误。

SP500 = xlsread('Datastream.xlsx',2,'C3:C278')

n = 276

l = 150;

返回(t)=零(l,1);

对于t = 1:(n-1 + 1)

Returns(t) = SP500(t:(t+l-1))

事先提前

1 个答案:

答案 0 :(得分:0)

这是在Octave中,并且在sp500中有一个随机向量,但可以做你想要的:

>> n=276;l=150;
>> sp500=rand(1,n);
>> Returns=zeros(n-l+1,l);
>> for t=1:(n-l+1);Returns(t,:)=sp500(t:t+l-1);endfor;

(尽管返回数组可能是您要查找的内容的转置,但代码并不关心sp500是行还是列向量)