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