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

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?

 採用された回答

Mischa Kim
Mischa Kim 2014 年 4 月 28 日
編集済み: Mischa Kim 2014 年 4 月 28 日

0 投票

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

その他の回答 (1 件)

Andrei Bobrov
Andrei Bobrov 2014 年 4 月 28 日
編集済み: Andrei Bobrov 2014 年 4 月 28 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeFunctions についてさらに検索

製品

質問済み:

2014 年 4 月 28 日

編集済み:

2014 年 4 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by