Göm menyn

TDDD44 Problemlösning och programmering

Lathund - grundläggande satser


När man skriver sina program i editorn i Matlab kan det vara bra att ha tillgång till några av alla de satser och uttryck m.m. som finns att tillgå. Här är en kort lista över de grundläggande satser som ni kommer att behöva i kursen.

Inmatning och utskrift

	disp('sträng')			Skriver ut strängen eller variabeln.  
	disp(variabel)
	disp(['Summan = ' num2str(x)])	Om variabeln x innehåller ett heltal
					omvandlas detta och skrivs ut efter
					strängen.

	x = input('mata in ett tal')	Skriver ut texten samt lagrar datat 
					från tangentbordsinmatningen i
					variabeln x.

	x				Innehållet i x skrivs ut.
					OBS! Detta används enbart till
					spårutskrifter vid felsökning.

	format				Ändrar formatet på utskriften.

Tilldelning av värde till variabel

	variabel = uttryck		Uttrycket kan vara en konstant
					eller något som går att "beräkna".
					Resultatet lagras i variabeln.

Kommentarer

Varje rad i programmet som inleds med ett "%"-tecken anses vara en kommentar. Denna tolkas inte av Matlab (utförs alltså ej). Kommentarer behöver inte starta i början av raden. Ett exempel:

	% Detta är en kommentar

Uttryck och operatorer

När man skriver matematiska uttryck i Matlab skriver man dem normalt sett precis så som man skulle gjort på papper. Addition, division, multiplikation m.m. sker enligt gängse regler. Detta gäller också prioritetsordningen mellan de olika operatorerna. Parenteser kan sättas in för att ändra prioritetsordning eller öka läsbarhet.

        + - * /		De fyra räknesätten
	^		Upphöjt till
	rem(a, b)	resten vid division av a och b
	mod(a, b)	a modulus b (liknar resten vid division)

Det som tillkommer är att det finns andra operatorer än de man är van vid från matematiken. T.ex. jämför man två data med "==" istället för "=". Här följer en lista med jämförelseoperatorer.

        ==		Jämförelse om A är lika med B ex. A == B
	<		Jämförelse om A är mindre än B
	<=		Jämförelse om A är mindre än eller lika med B
	>		Jämförelse om A är större än B
	>=		Jämförelse om A är större än eller lika med B
	and		Logiska OCH
	&		Logiska OCH
	or		Logiska ELLER
	|		Logiska ELLER
	~		Logiska INTE
	xor		Logiska EXKLUSIVT ELLER

Resultatet vid en jämförelse kommer att vara antingen "true" (1) eller "false" (0). Detta kan senare användas i uttryck där man skall avgöra om saker är "sanna" eller ej.

Att skriva ett intervall, t.ex. alla tal mellan 1 och 10.

	N:M		Alla tal mellan N och M, inklusive gränserna
	N:S:M		Talen N, N+S, N+2S, N+3S, ... upp till M (om
			det inte går jämnt upp försvinner talet M)

Villkor (selektion)

Det finns två typer av villkorssatser. Vi början med "if".

	if uttryck1
	  satser
	end

Utför det som står mellan if och end om uttyck1 är sant Annars ingenting

	if uttryck1
	  satser
	else
	  satser
	end

Utför det som står mellan if och else om uttyck1 är sant Utför det som står mellan else och end annars

	if uttryck1
	  satser
	elseif uttryck2
	  satser
	end

Utför det som står mellan if och elseif om uttyck1 är sant Utför det som står mellan elseif och end om uttryck2 är sant Annars ingenting

	if uttryck1
	  satser
	elseif uttryck2
	  satser
	else
	  satser
	end

Utför det som står mellan if och elseif om uttyck1 är sant Utför det som står mellan elseif och else om uttryck2 är sant Utför det som står mellan else och end annars

OBS! Man kan ha godtyckligt många "elseif".

Den andra varianten av villkorssats är "switch".

	switch switch_uttryck
	  case case_uttryck1
	    sats1
	  case { case_uttryck2, case_uttryck3 }
	    sats2   
	  otherwise
	    sats3
	end

Utför sats1 om switch_uttryck och case_uttryck1 är samma Utför sats2 om switch_uttryck och case_uttryck2 eller case_uttryck3 är samma Utför sats3 annars

Upprepning (iteration)

Det finns två typer av upprepningssatser. Vi början med "for".

	for variabel = intervall
	  satser
	end

Utför satserna mellan "for" och "end" för varje data i intervallet.

Den andra varianten heter "while".

	while uttryck
	  satser
	end

Utför satserna så länge uttrycket är sant.

En lista på bra saker i övrigt

	...		Fortsätter ett uttryck på nästa rad (utan att
			utföra första raden).

	;		Gör så att inte utskrift av resultatet sker.

	break		Avbryter en loop av typen while eller for.

	clear x		Tar bort variabeln x.
	clear		Tar bort ALLA variabler.

	rand		Ger ett slumptal i intervallet [0,1[.

	ans		Senaste svaret.

	eps		Minsta värdet/precisionen.

	pi		Värdet på Pi.

	Inf		Oändligheten.

	NaN		"Not a Number" fås t.ex. vid division med 0 (noll).

	i, j		Markeringen för imaginärdel i ett komplext tal.

	x=2+3i		Det imaginära talet 2+3i stoppas in i variabeln x.

	real(x)		Realdelen av innehållet i variabeln x.
	imag(x)		Imaginärdelen av innehållet i variabeln x.

	complex(1, 2)	Ger det komplexa talet 1+2i.

	pause		Gör så att programmet väntar en kort stund.

	date		Tar fram dagens datum (som en sträng).

	realmax		Största reella värdet (flyttalet) i MatLab.
	realmin		Minsta reella värdet (flyttalet) i MatLab.

	intmax		Största heltalsvärdet i MatLab.
	intmin		Minsta heltalsvärdet i MatLab.

	floor		Funktion som avrundar ett flyttal nedåt.
	ceil		Avrundning uppåt.
	round		Avrundning till närmaste heltal OBS! det
			är alltid intressant att fundera över vad
			avrundningen av X.5 blir för olika X-värden.
			Det är nämligen inte matematiskt så
			väldefinierat.

	abs		Absolutvärdet av ett tal.

	sqrt		Den matematiska funktionen "roten ur".

	gcd		Den matematiska funktionen "största gemensamma
			delare" (greatest common divisor).

	str2num		Omvandling av sträng till numeriskt värde.
	num2str		Omvandling av numeriskt värde till sträng.

	int2str		Omvandling av heltalsvärde till sträng.
			OBS! int2str(12.8) => '13'

	strcmp		Jämför två strängars innehåll.

	upper		Omvandling av sträng till VERSALER.
	lower		Omvandling av sträng till gemener.


Sidansvarig: Torbjörn Jonsson
Senast uppdaterad: 2012-08-16