Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Mas135 forelesning4
1. MAS135: MATLAB for Mechanical
Engineers
Forelesning 4 : Repetisjon: matriser. Input/
output
Victoria Popsueva
Bergen, C208
03 september 2018
2. Mer om matriser
Matlab sine innebygde funksjoner (cos(), sin(), sqrt(), cosh(), sinh(),
factorial(), log() osv.) kan ta både skalarer og matriser/vektorer som
argument. Hvis de får inn en matrise eller en vektor så returnerer de en
matrise eller en vektor:
>> x = [0:pi/6:pi]
x =0 0.5236 1.0472 1.5708 2.0944 2.6180 3.1416
>> y = cos(x)
y = 1.0000 0.8660 0.5000 0.0000 -0.5000
-0.8660 -1.0000
4. Innebygde funksjoner for analyse av
vektorer/matriser
Når A er input matrisen:
• mean(A) -gjennomsnitt
• max(A) -maksimum
• min(A) -minimum
• sum(A) -summen
• sort(A) -sorterer i
stigende rekkefølge
• median(A) -medianen
• std(A) - standardavvik
• det(A) - determinant
• dot(a,b) -
prikkproduktet av
vektorene a og b
• cross(a,b) -
kryssproduktet av
vektorene a og b
• inv(A) - den inverse
5. Input og Output
• I et program kan vi definere interne variable og tilordne dem
verdier
• Disse verdiene kan enten leses inn fra skjerm eller fra en fil (input)
• Etter at programmet har kjørt ferdig kan de relevante verdiene
skrives ut på skjerm eller en output-fil
6. Input fra skjerm
• En (forhåpentligvis kjent!) måte å lese inn verdiene på er
input-kommando
variabel_navn = input('Tekst som skrives ut i
kommandovinduet')
f.eks: rentesats = input(‘Skriv inn rentesatsen! ‘);
• Man kan også lese inn en tekststreng
variabel_navn = input('Tekst', 's')
7. Output til skjerm
• MatLab lager automatisk utskrift til skjerm når man
ikke skriver semikolon
• Kommando disp gir utskrift til skjerm:
disp(variabelnavn) eller
disp('Tekst som skal vises på skjerm')
• Kan kun vise en variabel om gangen, men denne
variabelen kan være en vektor eller en matrise
8. Utskrift til skjerm/fil
• Kommando fprintf kan brukes til utskrift både til
skjerm og til en fil
• For å skrive ut tekst til skjerm:
fprintf('Teksten som skal skrives ut ')
• n for å bryte opp linjen
• t tilsvarer TAB-tasten
• b tilsvarer BACKSPACE-tasten
9. Utskrift til skjerm/fil
Man kan skrive ut både tekst og tall i samme
kommando
fprintf('Tekst %-5.2f mer tekst', variabelnavn)
%-tegnet markerer hvor tallet skal skrives ut
- tegnet justerer mot venste (valgfritt)
5.2 angir antall gjeldende sifre (valgfritt)
f (format)
10. Mer om fprintf
• Vi kan skrive ut flere variabler, gjerne både tall og
tekststrenger:
fprintf(’tekst %5.2f %5.2f %s mer tekst n’,
tall_1, tall_2, tekststreng)
• NB! Når en variabel er en vektor eller en matrise vil
utskriften gjenta seg for hvert element!
11. Utskrift til fil
• Tre steg: åpne filen, skrive til filen og lukke filen
• Åpne fil: f_id = fopen(’filnavn’, ’tilgang’)
F_id er en variabel som identifiserer filen
• Tilgang: ’r’ lesetilgang, ’w’ skrivetilgang (overskriver
det som eventuelt var i filen fra før av) ’a’ (append)
fortsetter å skrive etter de eksisterende data
12. Utskrift til fil
• For å skrive til fil bruker vi som før kommandoen
fprintf, men vi må også angi fil-identifikasjon (f_id)
fprintf(f_id, ’tekst %s %i %f mer tekst n’, variabel1,
variabel2, variabel3)
• Lukke filen med kommando fclose:
fclose(f_id)
13. Utskrift til fil
• Man kan lage flere utskriftfiler. Da må man først åpne
filene ved å bruke fopen og gi filene hver sin f_id, f.eks
f_id1, f_id2, etc
• Vi kan også lagre (og hente fram) variablene som ligger i
workspace ved å skrive
save filnavn eller
save(’filnavn’)
• Da blir variablene lagret i en fil filnavn.mat og kan hentes
fram vha load filnavn eller load(’filnavn’)
14. Oppgave
• Lag et script som regner ut volumet til en kloss med en
gitt lengde, bredde og høyde, som skal leses inn fra
skjerm
• Skriv ut resultatet på skjerm (med både tekst og tall)
og til en fil
15. Programmering i MatLab
• Kontrollstrukturer: brukes for å kontrollere rekkefølgen til
kommandoene
• Noen ganger trenger man å utføre samme kommando flere ganger
• Andre ganger trenger ikke alle kommandoer å bli utført (når man for
eksempel skal gjøre valg avhengig av forskjellige situasjoner)
16. If-tester
• Når man trenger å gjøre valg avhengig av at en betingelse er oppfylt
• For eksempel: Et script som regner ut lønn til en arbeider. For inntil 40
timer i uka betaler man vanlig timelønn, og for overtid betaler man 50
% ekstra
• Dersom man kjenner timelønnen og antall timer, trenger man å sjekke
om antall timer er mer enn 40
17. 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
18. If-test (forts.)
• t = input('antall timer ');
• l = input('timelønn ');
• betaling = t*l;
• if t > 40
• overtid = (t-40)*0.5*l;
• betaling = betaling + overtid;
• end
• fprintf('Betaling: %5.2f n', betaling);
19. If-test (forts.)
• clear;
• betaling = 0;
• t = input('antall timer ');
• l = input('timelønn ');
• if t > 40
• betaling = t*l + (t-40)*0.5*l;
• else
• betaling = t*l;
• end
• fprintf('Betaling: %5.2f n', betaling);
20. Enda en if-test
• clear;
• betaling = 0;
• t = input('antall timer ');
• l = input('timelønn ');
• if t > 40
• betaling = t*l + (t-40)*0.5*l;
• elseif t<=0
• fprintf('Noe galt! ');
• else
• betaling = t*l;
• end
• fprintf('Betaling: %5.2f n', betaling);
22. Logiske operatorer
• & OG: for eksempel A & B er sant når både A og B er sant
• | ELLER: for eksempel A | B er sant når enten A eller B er sant
• ~ IKKE: for eksempel ~A sant når A er usann
24. Oppgave:
• Lag et script som regner ut volumet til en kloss, der lengde, bredde og
høyde blir lest inn fra skjerm
• Lag en if-test som sjekker om noen av de innleste verdiene er
negative eller null, og kun regner ut volumet dersom verdiene er
positive. I motsatt tilfelle bør det skrives ut en feilmelding