Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h...

40
MM YS Introduktionskurs i MATLAB (TSRT04) VT2 2019 akan Johansson Division of Communication Systems Department of Electrical Engineering (ISY) Link ¨ oping University, Sweden www.commsys.isy.liu.se/en/student/kurser/TSRT04

Transcript of Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h...

Page 1: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

MM

YS

Introduktionskurs i MATLAB (TSRT04)VT2 2019

Hakan Johansson

Division of Communication SystemsDepartment of Electrical Engineering (ISY)

Linkoping University, Swedenwww.commsys.isy.liu.se/en/student/kurser/TSRT04

Page 2: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Om kursen

Grunderna i MATLAB

Vektorer och matriser

Anvanda inbyggda funktioner

Skript och funktioner

Visualisering

Kontrollstrukturer

Sammanfattning

1/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 3: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Malet med kursenKursen ska ge grundlaggande praktiska kunskaper omprogrammeringsspraket Matlab, som anvands till tekniskaberakningar. Kursen kan ses dels som en forberedelse till ettstorre antal kurser dar Matlab anvands, dels som ett tillfalle attlara sig beharska ett kraftfullt ingenjorsverktyg.

Efter fullgjord kurs forvantas studenten kunna:I anvanda Matlab som miniraknare for bade skalarer och

matriser: Anvanda elementara funktioner och definieravariabler.

I konstruera enkla skript och funktioner.I anvanda kontrollstrukturer (if-satser, for- och while-loopar) i

enkla exempel.I presentera resultat av berakningar och askadliga

datamangder genom grafiska figurer.I anvanda hjalpsystemet for att lara sig nya funktioner.

2/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 4: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

KursupplaggI 1 forelasning, 2×2 h lektioner, 5×2 h laborationer

I Notera skillnaderna: 2 hp ∼ 53 timmar av studier!I 37 h av sjalvstudier – betoning pa ”egen utforskning”.I Kursmaterial, information, instruktioner och lankar finns pa

kurshemsidan. Las igenom hela hemsidan!I Ladda ner MATLAB fran Studentportalen!I Ingen kursbok behovs – nagra bokforslag och videolankar

pa hemsidan

I Lektioner och laborationerI Lara genom att prova – basta sattet att lara MATLAB.I Arbeta i par: Hitta nagon med liknande

programmeringsbakgrund.I Vi forvantar oss att bada skriver och forstar koden.I Lektioner ar frivilliga, laborationer ar obligatoriska!

3/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 5: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Anmalan till lektioner och laborationer

2 grupperI Grupp A: Maria PoslukI Grupp B: Martin Allander

AnmalanI Valj din grupp – detta bor du gora omedelbart!I Anmalan till en lektionsgrupp (omfattar tva lektioner) och

en labbgrupp (omfattar fem labbar)I Anmalan gors i Lisam

4/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 6: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Examination1) Quiz

I Individuellt test om MATLABs grunder.I Sker vid forsta labben. Examinerar lektionsmaterialet.

2) PlottuppgiftI Plotta och visualisera en datamangd pa olika satt.

3) ”Mini-projekt”I Los ett litet problem och visualisera losningen.I Obligatoriskt deltagande i laborationer tills projektet ar

godkant.

Generella riktlinjerI Flera olika plottuppgifter och projekt (valj 1!)I All undervisning ar tillfallen att stalla fragor.I Mellan schemalagd tid: Sjalvstudier (5-6h/vecka)!I Redovisning pa engelska, endast vid labbtillfalle 3 och 5.

5/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 7: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Svarighetsgrad

I Forkunskaper: Linjar algebra, ProgrammeringI Universitetskurser har larandemal.I Svarighetsgraden beror alltid pa tidigare erfarenhet.I Skillnader i programmeringserfarenhet paverkar.I MATLAB kommer vara anvandbart i manga kurser.

6/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 8: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Vad ar MATLAB?MATrix LABoratory (MATLAB)

I Avancerade raknedosa for tekniska berakningarI Enkelt men kraftfullt programmeringssprakI Numeriska berakningar (ej symboler som Mathematica)I Tillgangligt for Windows, Mac, Unix, Linux, etc.I Nya versioner tva ganger per ar: 2016a, 2016b, 2017a, ...

I Bra: Enkelt att komma igang, enkelt att visualisera resultatI Bra: Manga exempel och verktygslador for olika omraden

(t.ex. matematik, statistik, optimering, telekommunikation,reglerteknik, biologi, finans).

I Daligt: Inte snabbast – men vanligtvis tillrackligt snabb!

I Bra for att testa ideer, losa forskningsproblem,utveckla/validera algoritmer

I Octave: Oppen kallkod – kompatibelt med MATLAB7/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 9: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Avdelningens forskning: 5G tradlosa kommunikationMal: Utveckla designprinciper for nasta generations mobilnat.

Forsta samspelet mellanI Datatakt per anvandare

(bit/s/user)I Datatakt per areaenhet

(bit/s/km2)I Energieffektivitet (bit/Joule)

Rollen for MATLAB:I Testa modellerI Utveckla algoritmerI Visualisera avvagningar 0

20

40

60

020406080100

0

2

4

6

8

10

12

Average User Rate [Mbit/s/user]

Average Area Rate [Gbit/s/km2]

Ene

rgy

Effi

cien

cy [M

bit/J

oule

]

Low User Rates,High Area Rates

High User Rates,Low Area Rates

8/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 10: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

MATLABs granssnitt

9/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 11: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

MATLAB som en raknedosaAnvand Command Window som en avancerad raknedosa

I Vanliga nummer: 30, pi (π), 1e2 (1 · 102)I Vanliga symboler: + - / *I Vanliga funktioner: cosinus (cos()), absolutbelopp (abs(·))

Exempel:

>> 2e3 + 300

ans = 2300

>> cos(pi)

ans = -1

>> abs(1+1i)

ans = 1.4142 10/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 12: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

VariablerI En ”container” att spara nummer i.I Har ett namn och ett varde.

>> a = 5

a = 5

>> b = a + 3

b = 8

(Det till hoger om = beraknas forst ochresultatet sparas i b.)Vad blir resultatet av:>> a = a + 2

a = 711/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 13: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

WorkspaceVariabler sparas i ”Workspace”, som ett forvaringsfack.

Undersok ditt workspace

I Om du inte valjer ett variabelnamn: Resultatet sparas i ansI Du kan klicka pa variabler i Workspace for att fa veta mer.I Du kan lista alla variabler med kommandot >>whos.

12/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 14: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Vektorer och matriserVektorer och matriser ar grunden i MATLAB.

I a =[4 5 6

]skrivs som >>a = [4 5 6]

(eller [4, 5, 6])

I b =

123

skrivs som >>b = [1; 2; 3]

I A =

[1 23 4

]skrivs som >>A = [1 2; 3 4]

Dessa sparas i Workspace – precis som alla andra variabler:

13/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 15: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Vektorer och matriserI Semikolon skippar utskrift av resultatet av ett kommando:>> a = [4 5 6];

I Matristransponat beraknas med .':>> a.'

ans =456

Skapa speciella matriser och vektorer:

I >>C = eye(2) ger C =

[1 00 1

].

I >>x = 3:6 ger x =[3 4 5 6

].

I >>y = 2:3:11 ger y =[2 5 8 11

].

14/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 16: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

MatrisoperationerUrsprungliga syftet med MATLAB: Matrisoperationer

I Skapa matriser:>> A = [1 2; 3 4];>> B = eye(2);

I Berakna multiplikation:

>> A*B

ans =1 23 4

dvs.[

1 23 4

] [1 00 1

](vanlig matrismultiplikation)

>> A.*B

ans =1 00 4

dvs.[

1 · 1 2 · 03 · 0 4 · 1

](elementvis multiplikation)

I Liknande: ˆ2 resp. .ˆ2, och / resp. ./15/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 17: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

MatrisoperationerDet finns massor av funktioner som hanterar matriser:

I Klassiska: exp() log() sin() cos() tan()I Ordningsfunktioner: min() max() mean() sort()

Vissa funktioner arbetar elementvis:

>> x = 0:(pi/2):(2*pi)

x = 0 1.5708 3.1416 4.7124 6.2832

>> y = sin(x)

y = 0 1.0000 0.0000 -1.0000 -0.0000

Vissa funktioner processar alla element gemensamt:

>> z = max(x)

z = 6.283216/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 18: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Indexering av matriser

Hur kommer man at vissa element i vektorer och matriser?

>> y = [0 1 0 -1 0];>> y(4)

ans = -1

>> A = [3 5 2; 7 8 6];>> A(1,2)

ans = 5

A =

[3 5 27 8 6

]

17/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 19: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Hur hittar man en funktion?Om du letar efter en funktion:

I Hur vet du om den existerar i MATLAB?I ”lookfor term” soker i dokumentationen efter textstrangen

”term”I Exempel: lookfor determinant letar efter en

matris-determinant-funktion

Hur tar du reda pa hur den fungerar?I ”help command” visar hjalptext for ”command”I ”doc command” ger mer ingaende information

Generell dokumentation:I ”doc” oppnar Matlab-dokumentationenI ”help” visar en lista over ”toolboxes” (samlingar av

funktioner for specifika andamal)18/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 20: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Bortom raknedosan: Skript

I Ett satt att kora flera kommandon flera gangar.I Spara nagra kommandon i en m-fil (filnamnet maste sluta

med .m) och kor alla genom att skriva namnet pa filen somett kommando.

I >>edit startar en redigerare som lampar sig val for attskriva m-filer.

I Dokumentation: Skriv kommentarer som % Comment

Stark rekommendation:I Anvand alltid skript!I Enkelt att reproducera resultat och skriva dokumentation.I Enkelt att gora sma andringar och kora om.

19/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 21: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Exempel: SkriptLina har sprungit 5 km pa 23 min och 15 s.

I Hon vill berakna tiden per km.I Hon vill gora samma sak nasta vecka.

m-fil computeRunPace.m

distance = 5; % Distance in kmminutes = 23; % Total time expressed inseconds = 15; % minutes and seconds

% Compute time per km in minutes:totalminutes = minutes + seconds/60;minperkm = totalminutes/distance

20/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 22: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Skript respektive funktioner

Vad ar skript?I Bara en uppsattning kommandon.I Anvander MATLABs generella Workspace.I Kan skriva over gamla variabler (overlappande namn).I Kan raka anvanda gamla variabler (kodningsfel).I Enklaste losningen: Borja skript med clear som tommer

Workspace.

Vad ar funktioner?

I Ett annat koncept: Har sina egna lokala Workspaces.I Fungerar precis som MATLABs egna funktioner.I Utmarkt satt att ateranvanda samma kod flera ganger.

21/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 23: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Exempel: Funktionm-fil computeRunPace.m

function minperkm = computeRunPace(dist, min, s)% Computes the time per km in minutes, given% the distance and the total time expressed% in minutes and seconds.

totalMinutes = min + s/60;minperkm = totalMinutes/dist;

end

I function – indikerar borjan pa en funktion

I funktionsnamn – ska vara samma som m-filen namn

I inparametrar – data som funktionen behover

I utparametrar – resultet som funktionen levererar

22/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 24: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Exempel: Anvanda funktionen

>>mpkm=computeRunPace(5,23,15)

mpkm = 4.65

Workspace:MATLAB

mpkm = 4.65

m-fil computeRunPace.m

function minperkm = computeRunPace(dist, min, s)% Computes the time per km...

totalMinutes = min + s/60;minperkm = totalMinutes/dist;

end

Workspace:computeRunPace

dist = 5min = 23s = 15totalMinutes =23.25minperkm = 4.65

23/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 25: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Exempel: Anvanda funktionen

>>mpkm=computeRunPace(5,23,15)

mpkm = 4.65

Workspace:MATLAB

mpkm = 4.65

m-fil computeRunPace.m

function minperkm = computeRunPace(dist, min, s)% Computes the time per km...

totalMinutes = min + s/60;minperkm = totalMinutes/dist;

end

Workspace:computeRunPace

dist = 5min = 23s = 15

totalMinutes =23.25minperkm = 4.65

23/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 26: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Exempel: Anvanda funktionen

>>mpkm=computeRunPace(5,23,15)

mpkm = 4.65

Workspace:MATLABmpkm = 4.65

m-fil computeRunPace.m

function minperkm = computeRunPace(dist, min, s)% Computes the time per km...

totalMinutes = min + s/60;minperkm = totalMinutes/dist;

end

Workspace:computeRunPace

dist = 5min = 23s = 15totalMinutes =23.25minperkm = 4.65

23/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 27: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Exempel: Anvanda funktionen

>>mpkm=computeRunPace(5,23,15)

mpkm = 4.65

Workspace:MATLABmpkm = 4.65

m-fil computeRunPace.m

function minperkm = computeRunPace(dist, min, s)% Computes the time per km...

totalMinutes = min + s/60;minperkm = totalMinutes/dist;

end

Workspace:computeRunPace

dist = 5min = 23s = 15

totalMinutes =23.25minperkm = 4.65

23/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 28: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Kombinera skript och funktioner

Funktioner

I Skapa funktioner varje gang en viss ”algoritm” ellerflerradig berakning anvands flera ganger

I MATLABs inbyggda funktioner ar skriva pa detta vis(skriv type funktionsnamn for att se)

Skript

I Definiera nagra variabler/parametrarI Anropa olika funktionerI Processa och visualisera resultaten fran funktioner

24/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 29: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Visualisering

Sag att vi vill plotta (visualisera) den matematiska funktioneny = sin(x) for 0 ≤ x ≤ 10:

m-fil plotSine.m

x = 0:0.1:10; % The x for which y should be computedy = sin(x);

figure; % Open a new figure ready for plottingplot(x,y) % Plot y as a function of xxlabel('x') % Give a name to the horizontal axisylabel('y = sin(x)') % Give a name to the vertical axistitle('My first plot') % Give a name to the whole figure

25/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 30: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Visualisering: Manga typer

Manga funktioner for att plotta data:

I 2D linjegrafer: plot, semilogx (horizontal log-scale)I 2D stapeldiagram: bar, histogramI 3D linjegrafer: plot3I 3D staplar eller nat: bar3, meshI 3D ytor: surf, sphere, ellipsoid

Anvand help for att lasa mer!

Anpassa plottar:

I Nastan allt kan skraddarsys.I Anvand ”Property Editor” i menyn ”View” for en figur.

26/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 31: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Kontrollstrukturer

Vissa ”beteenden” beror pa inparametrar:I Har ditt bankkonto tillrackligt med pengar?

Vissa kodsnuttar upprepas:I Behover du kora samma kodrader flera ganger?I Vet du i forvag hur manga ganger?

MATLAB har flera kontrollstrukturer:I if-satserI while-looparI for-loopar

Dessa liknar andra programmeringssprak.

27/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 32: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

if-satserGenerell syntax:

if villkor% kommandon om villkoret ar uppfyllt

else% kommandon om villkoret inte ar uppfyllt

end

Skriv villkor med logik:

I Anvander operatorer som: > >= == && || ∼= < <=

I Sag att savings ar en variabel med saldot pa dittbankkonto.

I Exempel: savings >= 10000 && savings <= 20000

28/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 33: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Exempel: if-satser

Example

Ett bankkonto ger 2% i ranta pa sparade pengar och debiterar14% i ranta pa krediter. Skriv en funktion som beraknar rantanfor ett viss belopp.

m-fil computeBankInterest.m

function interest = computeBankInterest(amount)% Computes annual interest for a given amount

if amount >= 0interest = 0.02*amount;

elseinterest = 0.14*amount;

end

end

29/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 34: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Skydda mot felIf-satser kan anvandas for att undvika felaktiga beteenden

I Exempel: computeBankInterest(amount) kan intehantera komplexa tal

I Detta kan kontrolleras och hanteras sa har:

if imag(amount) ˜= 0error('There is no imaginary money!');

end

I imag() ger den imaginara delen av enskalar/vektor/matris

I error() visar ett felmeddelandeI Textstrangar kan skriva som 'meddelande'

I Alternativ: disp() visar ett icke-felrelaterat meddelande

30/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 35: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

while-loopar

I Upprepa samma berakningar sa lange (while) ett villkor aruppfyllt

I Villkoret kontrolleras i borjan av varje loopI Var saker pa att villkoret till slut blir falskt – annars oandlig

loop!

I Generell syntax:while villkor% kommandon som ska upprepas

end

31/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 36: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Exempel: while-looparExample

Anta att du har lanat 1 miljon kr fran en bank. Banken debiterar0.25% i ranta per manad. Du amorterar 5000 kr per manad.Hur manga manader tar det att aterbetala hela lanet?

m-fil predictLoan.m

currentLoan = 1e6; % The initial loan is 1,000,000 krmonthlyPayment = 5000; % You pay 5000 kr each monthmontlyInterest = 0.0025; % The bank charges 0.25% per monthmonthNumber = 0; % Keep track of month number

while currentLoan >= 0currentLoan = currentLoan + currentLoan*montlyInterest; %Apply interest ratecurrentLoan = currentLoan - monthlyPayment; %Reduce loan by monthly paymentmonthNumber = monthNumber + 1;

end

% monthNumber will now contain the month when you have repaid your loan% Be sure that monthlyPayment > currentLoan*montlyInterest, otherwise it never stops!

32/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 37: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

for-loopar

I Vet hur manga gangar som kommandon ska upprepas?I Mer kompakt att anvanda for-loopar istallet for while

I Generell syntax:for var = vektor med varden

% kommandon som ska upprepasend

33/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 38: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Exempel: for-looparExample

Anta att du borjar spara 500 kr per manad nar ditt barn fods.Den manatliga rantan ar 0.17% (2% per ar). Hur mycketkommer barnet ha vid 18 ars alder?

m-fil predictSavings.m

currentSaving = 0; % Bank account is empty in advancemonthlySaving = 500; % You save 500 kr per monthmontlyInterest = 0.0017; % The bank interest is 0.17% per month

numberOfMonths = 12*18; % Compute number of months before turning 18

for index = 1:numberOfMonthscurrentSaving = currentSaving + currentSaving*montlyInterest; %Apply interest ratecurrentSaving = currentSaving + monthlySaving; % Add monthly saving

end

% currentSaving will now contain the savings at the age of 18

34/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 39: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Sammanfattning

I MATLAB ar anvandbart for manga typer av berakningarI Standardverktyg pa universitet och manga foretag – mer

an 1 miljon anvandareI Valj variabelnamn noggrant – skriv kommentarerI Anvand skript och funktioner, det kommer spara dig tidI Kontrollstrukturer:

I if-satser – gor olika saker baserat pa ett villkorI for-loopar – upprepa berakningar ett forbestamt antal

gangerI while loops – upprepa berakningar tills ett villkor inte ar

uppfyllt langreI Anvand hjalpsystemet for att utveckla dina kunskaper!!!

35/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS

Page 40: Introduktionskurs i MATLAB (TSRT04) · Kursupplagg¨ I 1 forel¨ asning, 2¨ 2h lektioner, 5 2h laborationer I Notera skillnaderna: 2 hp ˘ 53 timmar av studier! I 37h av sjalvstudier

Lycka till med kursen!

Ha kul med MATLAB!

Lar er genom att utforska!

36/36

Hakan JohanssonIntroduktionskurs i MATLAB (TSRT04)

COMMUNICATION SYSTEMSLINKOPING UNIVERSITY

MM

YS