我正在尝试导出一个用于计算两个向量的移动/滚动相关性的函数,并且速度是一个高优先级,因为我需要在数组函数中应用这个函数。我所拥有的(太慢了)是这样的:
Data1 = rand(3000,1);
Data2 = rand(3000,1);
function y = MovCorr(Data1,Data2)
[N,~] = size(Data1);
correlationTS = nan(N, 1);
for t = 20+1:N
correlationTS(t, :) = corr(Data1(t-20:t, 1),Data2(t-20:t,1),'rows','complete');
end
y = correlationTS;
end
我认为for
如果我知道如何生成滚动窗口索引然后应用accumarray
. 有什么建议么?