TDDD44 Problemlösning och programmering
Lathund - underprogram
I MatLab finns det endast en typ av underprogram. Dessa kallas funktioner. Här är lite beskrivningar över hur man skriver dessa.
Generell beskrivning
En generell beskrivning över hur en funktion skrivs i MatLab kan se ut på följande sätt:
function {return_value=}function_name{(parameter_list)} {comments} statements end
En kort beskrivning av ovanstående generella beskrivning:
Själva ordet "function" används för att säga att detta är en definition av en funktion. Efter detta måste man ange vad funktionen heter, "function_name". Beroende på om funktionen skall returnera något värde eller ej behövs "return_value=" eller inte. Om funktionen skall ta emot några indata skall man skriva sin parameterlista, "parameter_list", inom parenteser efter funktionsnamnet. Om funktionen inte behöver indata slopar man hela parentesen. De krullparenteser som står i beskrivningen betyder alltså att man kan utelämna det som är mellan dem. Själva satserna som gör det som skall utföras av funktionen är markerade ovan med "statements". Kommentarerna som kommer direkt efter själva funktionshuvudet är lite speciella. Man kan dessutom ha kommentarer bland saterna, men dessa berör vi inte här. Om man skriver en kommentar på raden efter funktionshuvudet kommer denna att tolkas som en kommentar som MatLabs inbyggda hjälpkommandon kan använda för att visa vad funktionen gör. Skriver man "help function_name" får man hela den kommentar som finns efter funktionshuvudet. Skriver man däremot "lookfor function_name" får man endast den första kommentarsraden. Om man har en tom rad innan kommentaren kommer denna endast att ses som en normal kommentar internt i funktionen och "help" och "lookfor" visar inte denna.
Exempel på hur några olika funktioner
Ett exempel på en funktion som varken tar emot några data eller returnerar något skulle kunna vara t.ex. ett välkomstmeddelande eller ett huvudprogram. Det skulle kunna se ut på något av följande sätt:
function main % Huvudprogrammet som gör något. disp('Hello world!'); end function welcome disp('Welcome to the world.'); end
En funktion som tar emot ett data, men inte returnerar något:
function print_message(message) disp(message); end
En funktion som endast returnerar ett värde:
function y = random % random - returnerar ett slumptal. y = rand; end
En funktion med både indata och (ett) utdata:
function sum = add(a, b) sum = a + b; end
En funktion med flera utdata:
function [x, y] = swap(a, b) x = b; y = a; end
Vill man lösa just det sista exemplet på lite kortare sätt skulle man kunna göra på följande sätt (även om detta är mer oläsligt och därför kanske inte är att rekommendera):
function [b, a] = swap(a, b) end
Sidansvarig: Torbjörn Jonsson
Senast uppdaterad: 2012-08-16