Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Mas135 forelesning5
1. MAS135: MATLAB for Mechanical
Engineers
Forelesning 5 : Litt om plotting.
Programmering i MatLab. IF, SWITCH, …
Victoria Popsueva
Bergen, C208
10 september 2018
2. Kap. 6 – Programmering i MatLab
Hva er poenget?
• Til nå har vi lagret sett med kommandoar i .m-filer og
kjørt skriptene i Matlab.
• Ofte må vi gjøre logiske operasjoner i
skriptet/programmet. Til det kan vi bruka if-setninger
(if-tester) som vi har sett eksempler på.
• Vi trenger også ofte å gjøre en operasjon flere ganger.
For å gjøre det kan vi bruke løkker.
3. Kap. 6 – Programmering i MatLab
«Ingredienser»:
• Logiske og relasjonsoperatorar
• Vilkårstester: If- og switch-tester
• Løkker: for- og while-løkker
• Løkker inni løkker
7. Relasjonsoperatorer (forts)
• Kan virke på både vektorer og matriser – da virker de elementvis:
• >> a = [1 3 6 -2]; b = [2 3 5 1];
• >> d = a>b
• d =
• 0 0 1 0
>> d = a~=b
d =
1 0 1 1
8. Mer om relasjonsoperatorer
• >> r = [8 12 9 4 23 19 10];
• >> s=r<10
• s =
• 1 0 1 1 0 0 0
• >> t=r(s)
• t =
• 8 9 4
• >> w=r(r<=10)
• w =
• 8 9 4 10
9. Logiske operatorer
• & (A&B) Er sant hvis BEGGE er sant
• | (A|B) er sant hvis EN eller BEGGE er sant
• ~ (~A) er sant hvis A er usant, og omvendt
• Et tall som er forskjellig fra null er sant, og 0 er usant
• Virker på både tall og vektorer/matriser
13. Rekkjefølge
Prioritert rekkjefølge til dei forskjellige operatorene:
1. Parantes () – høyeste prioritet
2. Eksponent ^
3. NOT ~
4. Multiplisere/dividere * /
5. Addisjon/substraksjon + -
6. Relasjonsoperatorane <,>,<=,>=,==,~=
7. AND &
8. OR | – laveste prioritet
14. if-tester
• Når en skal gjøre et valg er en avhengig av at et vilkår er oppfylt.
• Tidligere eksempel: Et skript som regner ut lønn til en arbeidstaker. For inntil
37,5 h per uke blir det vanlig timelønn. For timene over 37,5 h 50 % ekstra i løn.
• (Repeter gjerne det gamle eksempelet)
15. If-tester (forts.)
• Pseudokode:
• Les inn antall timer (t) og timelønn (l)
• Regn ut ”vanlig” lønn ved å gange sammen l og t
Hvis antall timer (t) > 40
-> regn ut og legg til overtidsbetaling
ellers
gjør ingenting
19. Switch-setninger
• Når en har flere mulige valg enn i en enten-eller situasjon (if-setning), kan en bruke
en swich-setning (en automatisk telefonsvarer: «tast 1 for… tast 122 for…»
• Syntaks: swich-setning
case tilfelle 1
gjør noe
case tilfelle2
gjør noe annet
case tilfelle 3
gjør noe annet igjen
…
end
21. Switch-setninger
• En kan ha så mange CASE som en trenger.
• OTHERWISE er ikke alltid nødvendig, men kan være greit å
ha med for å lage et ”idiotsikkert” program.
• Det er vanlig i switch-setninger å lese inn en eller annen
variabel fra skjerm. ”Tast 1 for å snakke med
kundebehandler, tast 2 for å høyre på pausemusikk…”
22. Eksempel: Switch-setning
clear;
disp('Regner ut logaritmer av et tall ');
tall = input('Skriv inn tallet ');
test = input('tast 1 for naturlig logaritme, 2 for 2-er og 3 for 10-er logaritme ');
switch (test)
case 1
resultat = log(tall);
fprintf('Den naturlige logaritmen er %fn',resultat);
case 2
resultat = log2(tall);
fprintf('2-er logaritmen er %fn',resultat);
23. Eksempel forts.
case 3
resultat = log10(tall);
fprintf('10-er logaritmen er %fn',resultat);
otherwise
disp('Feilmelding!');
end
24. Oppgave:
• Lag et lite script som plotter sinus, cos, eller tangens til en vinkel (bruk
f.eks 0 til Pi som definisjonsområde. Spør om hvilken funksjon vi vil
plotte, og bruke en switch-case test til å bestemme hvilken funksjon
som skal plottes de tre tilfellene.
• Eksperimenter gjerne med plottene (farge, symboler, tekst på aksene)