How can I graph all the values of n in the while loop ? Theres my program.

1 view (last 30 days)
n=input('Enter a natural number');
cont=1:1:n;
while n>1
if rem(n,2)==0
n=n/2;
elseif rem(n,2)~=0
n=n*3+1;
end
plot(cont,n,'--rs');
end

Answers (1)

Mischa Kim
Mischa Kim on 28 Oct 2016
Edited: Mischa Kim on 28 Oct 2016
Something like this? Not quite sure what you want your x-axis to be.
n = input('Enter a natural number');
cont=1:1:n;
ii = 0;
while n>1
ii = ii + 1;
if rem(n(ii),2)==0
n(ii+1) = n(ii)/2;
elseif rem(n(ii),2)~=0
n(ii+1) = n(ii)*3+1;
end
end
plot(ii,n,'--rs');
  4 Comments
jonathan garcia
jonathan garcia on 28 Oct 2016
% i used hold on and in the plot only appears the points because hold on is used to unite different % plots in one, so i guess that im unable to create a line to connect the points.
n=input('Enter a natural number');
cont=1;
while n>=1
plot(cont,n,'rs','LineWidth',2,'MarkerSize',10);
if n==1
n=1;break
elseif rem(n,2)==0
n=n/2;
elseif rem(n,2)~=0
n=n*3+1;
end
hold on cont=cont+1; end
Mischa Kim
Mischa Kim on 28 Oct 2016
jonathan, have you checked out/run the code that I posted above?
My second post contains another way of plotting the data you might want to try.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!