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

2 ビュー (過去 30 日間)
Agent Cooper
Agent Cooper 2014 年 4 月 28 日
編集済み: Andrei Bobrov 2014 年 4 月 28 日
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 日
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 日
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

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by