Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
各日付の価格として列を持つ断面配列があります。30 日間のウィンドウのローリング サムで別の配列を作成したいと考えています。for ループを使用しないことをお勧めします。現在、1 つの列に次のコードを使用しています。
for i=31:n for j=i-30:i-1 x = x + y(j) end sum(i) = x end
すべての証券に対してこれを行う必要があるため、データセット内のすべての要素に対してコードを複数回実行する必要があります。
の組み合わせをcumsum使おう!
cumsum
data = 1:10; n = length(data); window = 3; rollSum = cumsum(data)-[zeros(1,window), cumsum(data(1:n-window))]; rollSum = 1 3 6 9 12 15 18 21 24 27 1=1 1+2=3 1+2+3=6 2+3+4=9 3+4+5=12