display while loop output as an array

how do you display the output of a while loop as an array.
code:
function [] = hailstone_sequence(n)
n = input('Value for n: ');
h = 1;
while(n~=1)
if n==1
return
elseif mod(n,2)
n=3*n +1
else
n=n/2
end
h=h+1;
end

2 Comments

what's your output variable ?
the output should be the values for each iteration in an array, so for 3 the output should be 3 10 5 16 8 4 2 1

Sign in to comment.

 Accepted Answer

Just before the h=h+1 insert
output(h) = n;

2 Comments

tried it, works but I am missing the initial value
Then move it to after the while() statement.
But question: does the output need to include the 1? If so then make sure to add a 1 to the end before the return statement.

Sign in to comment.

More Answers (1)

jean claude
jean claude on 5 Oct 2017
Edited: jean claude on 5 Oct 2017
function [output] = hailstone_sequence(n)
output=[n];
h = 1;
while(n~=1)
if n==1
return
elseif mod(n,2)
n=3*n +1
else
n=n/2
end
h=h+1;
output= [output n];
end

Categories

Find more on Loops and Conditional Statements 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!