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

 Réponse acceptée

"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));

Plus de réponses (1)

Ajay Kumar
Ajay Kumar le 24 Mar 2020
Modifié(e) : Ajay Kumar le 24 Mar 2020
res_sum = 0;
for i=1:23;
a(i) = randn(1);
res_sum = res_sum + a(i);
end

4 commentaires

thanks Ajay!
Do you know how to write it so that I create each time a random number and add it to the previous so that sum is also 1x23?
res_sum = 0;
for i=1:23;
a(i) = randn(1);
res_sum(i+1) = res_sum(i) + a(i);
end
the sum will be 1x24 because the first value of sum is 0. You can however delete the first element
res_sum = res_sum(2:end);
FYI, you don't need a loop to do this. See the last line of my answer for a non-loop method.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by