Anropa function
Hej, jag undrar på hur kan jag anropa denna funktionen
jag skrev Collatz(16) till exempel i command window
men det kom ingen svar.tack på förhand
Är det v du vill att funktionen ska returnera? Men du har inte skrivit return någonstans?
hej, ja det är v som funktionen ska returnera, nu har jag skrevet v istället för c ovan. den sista vilkoret säger att funktionen ska returnera en tom vektor om talserien inte kovengerat efter 500 termer.
btyder detta att om talserien inte har gränsvärdet 1, så ska funktionen returnera en tom vektor. men jag förstår inte hur man har formulerat koden, dvs vad innebär v(end) ~= 1, jag vet att det betyder att om sista term i vektorn v inte lik 1. men hur kopplas detta med 500 termer
jag undrar också på värför sätter vi n=t; alltså värför behöver vi spara första värden för t.
tack på förhand
Fast hur ska din funktion veta att det är v som ska returneras?
Collatz slutar alltid med ett (eller mer korrekt: inget annat fall har hittats). Sen kanske det inte konvergerar på 500 termer. Testet om sista talet är 1 görs efter loopen, så det är den 500:e termen.
n = t görs troligen för att inte ändra på input-variablen, vilket brukar ses som dåligt kodstil.
Förresten, v = n ser konstigt ut, ska det inte vara v(1) = 1 (kan inte nog om Matlab för att veta om det går att skriva v = n, skulle gissa att v inte är en vektor då längre.
hej, igen, vilkoret v=n, säger att om första input är 1 så ska funktionen returnera 1 som värdet av v. dvs v=1