How to extract all the values from a while loop into a vector

1 vue (au cours des 30 derniers jours)
Agent Cooper
Agent Cooper le 28 Avr 2014
Modifié(e) : Andrei Bobrov le 28 Avr 2014
I have the following function
function c = nice(n)
c = n
while c ~= 1
if rem(c,2) == 0
c = c/2
else c = 3*c+1
end
end
and I am trying to insert all the c values into one vector. Any hints on how can I do it?

Réponse acceptée

Mischa Kim
Mischa Kim le 28 Avr 2014
Modifié(e) : Mischa Kim le 28 Avr 2014
AC, use something like
function c = nice(n)
ii = 1;
c(ii) = n;
while c(ii) ~= 1
ii = ii + 1;
if rem(c(ii-1),2) == 0
c(ii) = c(ii-1)/2;
else
c(ii) = 3*c(ii-1) + 1;
end
end
end

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 28 Avr 2014
Modifié(e) : Andrei Bobrov le 28 Avr 2014
function c = nice(n)
c = n;
jj = 0;
while c(end) ~= 1
if rem(c(end),2) == 0
h = c(end)/2;
else
h = 3*c(end)+1;
end
c = [c;h];
jj = jj + 1;
if jj >= 30, break; end
end

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by