MATLAB Answers

Plotting for loop with two outputs

2 views (last 30 days)
Petch Anuwutthinawin
Petch Anuwutthinawin on 13 Jun 2021
Commented: KSSV on 14 Jun 2021
I need to plot a function with a two variable output using any method. The graph should plot an x range of 2-1000000. I have used a for loop which should plot the prewritten function L, which outputs two different variables. Both are below.
%%This is the function that works. It is for the collatz conjecture.
function [N, mx] = prob3_6(x)
X=x;%to initialise an X value that is not the input
N=0; %to initialise an N value that starts with 0 iterations.
mx=x; %create a definition for max in terms of x.
while X~=1; %while x is not 1, ends when x=1 if ever
if mod(X,2); % if x is odd
X=1+3*X; % do calculation for odd input
else
X=X./2; %even numbers divided by 2
end
N=N+1 %for each loop, N will add 1 iteration from zero
if X>mx; % if an X value happens to be greater than the set max, which is the input,
mx=X %it will override that value with the new max.
end
end
%% This is the code that does not work for plotting the function
for X= 2:1000000;
L=HW32P12Function(X);
end
figure(1)
loglog(X,L)
grid on
How do I use a this loop to plot the function that I have made?
  1 Comment
LO
LO on 13 Jun 2021
isn't there a typo there ? HW32P12 ?
also as you plot you want either to use "cla" after "figure(1)" to refresh the plotting or use hold on to keep all plots. Or what would you like to do ?

Sign in to comment.

Accepted Answer

KSSV
KSSV on 14 Jun 2021
Edited: KSSV on 14 Jun 2021
X= 2:1000000;
n = length(X) ;
L = zeros(1,n) ;
for i = 1:n
L(i) =HW32P12Function(X(i));
end
figure(1)
loglog(X,L)
grid on
  2 Comments
KSSV
KSSV on 14 Jun 2021
Edited the answer.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!