MATLAB:滚动z-score

MATLAB:滚动z-score,matlab,Matlab,我有一个从2000年1月1日到2010年12月31日按升序排列的时间序列数据的3650x1列向量。这意味着观测值是成行的,2000年1月1日的观测值在第一行,2010年12月31日的观测值在最后一行 我还有一个偏移的行向量和一个称为z_分数的空矩阵: offsets = [5 10 15 20] z_scores = nan(3650, 4) 我正在尝试填充z_分数。z_分数中的每一列对应一系列的offsetz分数 例如,z_分数的第一列将包含5个时段的z分数。z_分数的第二列将包含10个周期

我有一个从2000年1月1日到2010年12月31日按升序排列的时间序列数据的
3650x1
列向量。这意味着观测值是成行的,2000年1月1日的观测值在第一行,2010年12月31日的观测值在最后一行

我还有一个偏移的行向量和一个称为z_分数的空矩阵:

offsets = [5 10 15 20]
z_scores = nan(3650, 4)
我正在尝试填充
z_分数
z_分数
中的每一列对应一系列的
offset
z分数

例如,
z_分数的第一列将包含5个时段的z分数。
z_分数的第二列
将包含10个周期的z分数,以此类推。每列中
z_分数的第一个
offset
标记将为
NaN

目前,我循环通过
偏移量
,这很好。然而,如果可能的话,我希望在每次迭代
offset
时使用矢量化解决方案

for i=1:length(offset)

    z_scores(:, i) = (data() - mean()) / std() % help!

end
我有所有的工具箱,所以我可以使用内置函数。如果有人想建议一个非矢量化的解决方案,我很乐意看到它

for i=1:length(offsets)
    N = offsets(i);
    z_scores(1:N, i) = zscore(data(1:N));
end