How to fix my function script?
조회 수: 16 (최근 30일)
이전 댓글 표시
this is edited my script:
function[s,m]=collatz()
%This function will show the steps and maxvalue of even and odd natural
%numbers. It will show the number of steps needed for the number num to
%reach 1. It will show the maxvalue in the list
%Even numbers will be divided by 2
%Odd numbers will be multiplied by 3 and add to by one
%Both will run as long as the result is greater than 1
clc
s=0
m=?
while x>1
if mod(x,2)==0 %shows x(natural number is even)
x=x/2
elseif mod(x,2)==1 %shows x(natural number is odd)
x=x*3+1
end
end
s=s+1;
m=max(?)?
The script above is what I understood from my professor's comments, but I am still lost the m(maxvalue) and what he is saying about my x value. Sorry if the picture is blurry or sideways.

댓글 수: 0
채택된 답변
James Tursa
2018년 9월 26일
편집: James Tursa
2018년 9월 26일
You need to have the step increment and the max calculation inside your while loop.
m = x; <-- Use this to initialize up front prior to the while loop
s = s + 1; <-- Put this inside your while loop
m = max(m,x); <-- Put this inside your while loop after the "if" block
댓글 수: 4
James Tursa
2018년 9월 26일
My guess is you pushed the green triangle button in the editor to run this function. That will run the code without defining the input n. You need to call this from the command line like this:
n = 5; % or whatever
[s,m] = collatz(n)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!