4 svar
228 visningar
Moni1 721
Postad: 8 mar 2021 15:14

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

emilg 478
Postad: 11 mar 2021 09:50

Är det v du vill att funktionen ska returnera? Men du har inte skrivit return någonstans?

Moni1 721
Postad: 11 mar 2021 10:51

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 

emilg 478
Postad: 11 mar 2021 11:05 Redigerad: 11 mar 2021 11:08

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.

Moni1 721
Postad: 11 mar 2021 11:14

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

Svara
Close