How to accumulate values into a variable using for loops?
古いコメントを表示
Hello,
I have an array that contains 1597 values. Let's call that X. I want to create a second array, Y, that should act as the following:
Y(1) = (X(1) + X(2))/(constant)
Y(2) = (X(2) + X(3))/(constant) + Y(1)
Y(3) = (X(3) + X(4))/(constant) + Y(2)
Y(4) = (X(4) + X(5))/(constant) + Y(3)
..and so on, until the last one:
Y(1596) = (X(1596) + X(1597))/(const) + Y(1595)
My code, which does not return an error, but also does not produce the correct values for Y, is as follows:
Y = zeros(1,length(X)-1);
Y(1) = (X(1)+X(2))/(constant);
i = 1:length(X);
for c = 1:length(X)-2
Y(c+1) = (X(c+1)+X(c+2))/(constant) + Y(i(c));
end
As stated above, the results I'm getting are not accurate (I'm comparing with results obtained through Excel, which are definitely correct). If anyone can please tell me where I'm going wrong, I would greatly appreciate it. If this description isn't clear enough, please let me know and I will try to clarify. Any help is greatly appreciated.
Thanks.
採用された回答
その他の回答 (1 件)
Andrei Bobrov
2013 年 4 月 16 日
Y = cumsum(conv(X,[1 1]/constant,'valid'));
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!