How do I write a loop which creates a random number and adds the previous values

1 view (last 30 days)
This is how i try it
for i=1:23;
a(i) = randn(1);
a = a + a(i);
end

Accepted Answer

Adam Danz
Adam Danz on 24 Mar 2020
"How do I write a loop which creates a random number and adds the previous values?"
To add to the previous value, the loop must start at index #2. See inline comments for details.
% number of iterations
n = 23;
% Always pre-allocate your loop arrays.
% Define the first random value and use NaNs to fill the rest of the array.
a = [randn(1), nan(1,n-1)];
% Create random numbers in loop, start with 2
for i = 2:n;
a(i) = a(i-1) + randn(1);
end
However, you don't need a loop. This line does the same thing as the loop above.
a = cumsum(randn(1,n));

More Answers (1)

Ajay Kumar
Ajay Kumar on 24 Mar 2020
Edited: Ajay Kumar on 24 Mar 2020
res_sum = 0;
for i=1:23;
a(i) = randn(1);
res_sum = res_sum + a(i);
end
  4 Comments
Adam Danz
Adam Danz on 24 Mar 2020
FYI, you don't need a loop to do this. See the last line of my answer for a non-loop method.

Sign in to comment.

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!