KPP053, HT2016 MATLAB, Föreläsning 2

Slides:



Advertisements
Liknande presentationer
Rör vi oss? Det beror på vad vi jämför oss med.
Advertisements

Uppgifter/Läxa Lös uppgifterna: 120, 121, 123, 125, 126, 128, 130, 133, 142, 144, 145.
Hud & hudsjukdomar Fredrik Hieronymus.
Behandlas under 4 kursträffar i mineralmuseet
Administration Distribution Metabolism Exkretion
Kap. 3 Derivator och Integraler
Kapitel 3 Sannolikhet och statistik
Kap. 3 Derivator och Integraler
Sol i Syd Projektdagen 2017 Region Blekinge
SP Sveriges Tekniska Forskningsinstitut
KONJUNKTURINSTITUTET
Praktiska grejer Lärare: Erik Ramm-Schmidt Läxorna finns på Wilma
Kapitel 1 Algebra och linjära modeller manada.se.
Kursintroduktion Brukarorienterad design
Kapitel 2 Förändringshastigheter och derivator manada.se.
Behandlas under 4 kursträffar i mineralmuseet mars-april 2017
Sällsynta jordartsmetaller
GEOGRAFI.
Så tycker de äldre om äldreomsorgen 2016
Men kolla bildspelet vecka 18 först
Nordiska Lärarorganisationers Samråd
Arbetsgrupp ”Hat och hot mot förtroendevalda”
Är en radikal omställning till hållbar konsumtion möjlig och hur påverkar det våra möjligheter till välbefinnande? Jörgen Larsson Assistant professor in.
X Avrundning och överslagsräkning
Välkommen till.
ULA Kompetenscenter - en del av TPY
VISBY IBKs FÖRENINGSTRÄD
Styrelsen i stallet vecka 20
Framgångsfaktorer för en global projektverksamhet
Gotlands energieffektiviseringsnätverk
Medelhavsbuffé 11/ Bildkavalkad.
Nya regler om energi i BBR
Sannolikhet och statistik
Lagen om Energikartläggning i stora företag
Växtekologisk orienteringskurs
Tularemi.
Information till primärvården Herman Nilsson-Ehle Catharina Lewerin
Inför avtalsrörelsen 2016 Lars Calmfors
Lagen om Energikartläggning i stora företag
KPP053, HT2016 MATLAB, Föreläsning 3
Lars Calmfors Föreläsning 2 för Riksrevisionen 25/2-2016
Fosfor från Östersjöns djupbottnar är problemet
Täthet hos flänsförband mellan stora polyetenrör och ventiler
Arbetsbeskrivning Sportkommittén
Dagens ämnen Matriser Räkneoperationer och räknelagar
Mellankrigstiden
Ledarutveckling över gränserna
Regiongemensam enkät i förskola och familjedaghem 2016
Hur får vi fler att söka till Teknikcollege ?
det är den här processen
Uppföljning av år 2016 HFS-nätverket
BILDSPEL ABISKO, ev. YOUTUBE KLIPP
Visit Karlskoga Degerfors
Vårdprevention - en introduktion för medarbetare på sjukhus
Trygg, säker och samordnad vård- och omsorgsprocess
Föräldraenkät 2017 Förskola
BYGDSAM Anundsjö Grundsunda BLT Nätra.
Nyheter i tredje upplagan av Handbok Riskanalys och Händelseanalys
Så här säljer du med SMS.
Finansiell samordning
Arbetsmarknadsutsikterna hösten 2016
Dagläger MTB i Högbobruk
Sportlovsläger 9-12 feb Årshjulet med läger på skolloven börjar med ett dagläger för våra tävlingsgymnaster Vi hälsar alla gymnasterna i S- och R-ben samt.
Medlemsinfo Tenhults IF
Välkommen till vårt Öppet Hus, SeniorNet Huddinge
Fortum: Lars Modigh Agneta Molinder Synovate Temo: Gun Pettersson
Attraktiv Hemtjänst Introduktion i att utvärdera hemtjänst
Presentation av verksamhetsplan
20% rabatt (På ordinarie priser)
Nu finns det möjlighet att köpa en klubboverall via Team Sportia
Presentationens avskrift:

KPP053, HT2016 MATLAB, Föreläsning 2 Vektorer Matriser Plotta i 2D Teckensträngar

Vektorer För att skapa vektorn x = [ 0 1 1 2 3 5]: 0 1 1 2 3 5 För att ändra (eller lägga till) ett element i x: >> x(7)=8 0 1 1 2 3 5 8

Vektorer För att ”hämta” ett element i x: >> x(7) ans = 8 För att ”hämta” 3:e till 6:e elementet i x: >> x(3:7) 1 2 3 5 8

Vektorer För att ”hämta” vartannat element från 3 till 7: >> x(3:2:7) ans = 1 3 8 För att ”hämta” (t.ex) det 3:e, 4:e och 7:e elementet ges en vektor: >> x([ 3 4 7 ]) 1 2 8

Att ta bort element ur en vektor Ta bort ett specifikt element [ ]: >> x(7) = [] %ersätter x(7) med en tom vektor x = 0 1 1 2 3 5 Ta bort sista värdet ur x: >> x(length(x)) = [] ans = 0 1 1 2 3

Vektorer med konstant stegavstånd: För att skapa vektorn x = [ 0 1 2 3 4 5 6 7 ]: >> x = 0:7 x = 0 1 2 3 4 5 6 7 För att skapa vektorn x = [ 0,0 0,5 1,0 1,5 2,0 2,5 3,0 ] >> x = 0:0.5:3 0 0.50 1.00 1.50 2.00 2.50 3.00

linspace(a,b) och linspace(a,b,n) Skapar en vektor med n element där första elementet är a och sista elementet är b. För linspace(a,b) blir n = 100.

Matriser Ange matrisen 𝐴= 1 2 5 6 9 10 3 4 5 6 7 8 >> A = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12 ] % semikolon indikerar radbyte A = 1 2 3 4 5 6 7 8 9 10 11 12 Man kan även slå en ny rad direkt i kommandofönstret (eller i en .m-fil): >> A = [ 1 2 3 4 5 6 7 8 9 10 11 12]

Delmatriser Ett enstaka element ur A kan hämtas med A(j,k) där j är elementets rad och k är elementets kolumn. Vill man hämta flera element ur A kan man i stället använda ange interval. (samma A som tidigare) >> A(2:3,3:4) %ger 3e till 4e kolumnen av rad 2-3 ans = 7 8 11 12

Delmatriser (fortsättning) Det går naturligtvis också att ange ett heltal och en intervall. (samma A som tidigare) >> A(3,3:4) %ger 3e till 4e kolumnen av rad 3 ans = 11 12 Anges ett kolon utan heltal får man hela raden eller hela kolumnen i stället för ett intervall. >> A(3,:) %ger alla kolumner av rad 3 9 10 11 12

Sammansättning av matriser och vektorer Sammansatta matriser och vektorer kan fås genom att ange en vektor/matris vars element i sin tur är vektorer/matriser. Ex: >> x1 = [ 1 2 3 4 ]; x2 = [ 5 6 7 8 ]; >> x = [ x1 x2 ] x = 1 2 3 4 5 6 7 8 >> A = [ x1 ; x2 ] A = 1 2 3 4 5 6 7 8

Funktioner som genererar specifika matriser zeros(n) %ger en n×n matris av nollor zeros(m,n) %ger en m×n matris av nollor ones(n) %ger en n×n matris av ettor ones(m,n) %ger en m×n matris av ettor eye(n) %ger en n×n identitetsmatris

Funktioner som genererar slumpmatriser: rand(n) eller rand(m,n) genererar en matris av jämt fördelade slumpvärden mellan 0 och 1. randn(n) eller randn(m,n) genererar en matris av normalfördelade slumptal. randi(imax,n) eller randi(imax,m,n)generer en slumpmatris av jämt fördelade heltal mellan 0 och imax.

Vanliga räkneoperationer med matriser. En skalär kan adderas till eller subtraheras från en matris (eller vektor). En matris (eller vektor) kan multipliceras med eller divideras med en skalär: Två matris (eller vektorer) av samma storlek kan subtraheras eller adderas med varandra. I alla dessa fall används standartecknet för respektive operation.

Elementvis räkneoperationer med matriser. Varje element i en matris multipliceras med motsvarande element ur en annan matris. Exempel: >> A = [ 2 3 5; 1 9 4 ] A = 2 3 5 1 9 4 >> B = [3 2 3; 3 2 3] B = 3 2 3 >> A.*B ans = 6 6 15 3 18 12

Elementvis räkneoperationer med matriser (forts.) Varje element i en matris divideras med motsvarande element ur en annan matris. Exempel (samma A och B som tidigare): >> A./B ans = 2/3 3/2 5/3 1/3 9/2 4/3 Varje element i en matris kan upphöjas till någon lämplig exponent. >> A.^3 8 27 125 1 729 64

Matrismultiplikation (matrisprodukt) Om multiplikationstecken används utan punkt genom får vi matrisprodukten (förutsätt att antalet rader i A matchar antalet kolumner i B) >> B = B' %B' transponerar B. B = 3 3 2 2 >> A*B ans = 27 27 33 33

Några inbyggda funktioner för matriser och vektorer length(x) %ger längden av vektorn x max(x) %ger största elementet i vektorn x min(x) %ger minsta elementet i vektorn x mean(x) %ger medelvärdet av elementen i x sum(x) %ger summan elementen i vektorn x dot(x,y) %ger skalärprodukten x∙y cross(x,y) %ger vektorprodukten x×y size(A) %ger storleken n×m av matrisen A inv(A) %ger inversmatrisen för A Fler funktioner finns på sidan 68 i kursboken.

Ekvationssystem (igen) A\b ger en vektor x så att 𝐴×𝑥=𝑏. b/A ger en vektor x så att 𝑥×𝐴=𝑏.

Tillämpning av vektorer: Plotta en trigonometrisk funktion x = linspace(-pi,pi); y = sin(x); %varje element i y blir %sinusvärdet för motsvarande %element i x plot(x,y); Grafen för y = sin(x) öppnas i nytt fönster:

Tillämpning av vektorer: Plotta grafen x3 - 2x2 + 4x - 10 x = linspace(-10,10); %godtyckligt intervall % punkt framför * och ^ ger elmentvis operation y = x.^3 – 2.*x.^2 + 4.*x – 10 plot(x,y); OBS: Detta kan även göras genom att definiera en anonym funktion (då behövs ej punkterna): f = @(x) x^3 – 2*x^2 + 4*x – 10; y = f(x);

Teckensträngar En teckensträng är en vektor där de lagrade värdena motsvarar tecken. Skapas i en tilldelningssats med enkla citattecken ex: --> s = 'Hello world!' s = Hello world! Som med en vanlig vektor kan man ändra (eller radera) ett enstaka element: --> s(12)='?' Hello world?

Teckensträngar (forts.) Som med en vanlig vektor kan man ändra (eller radera) ett enstaka (eller flera) element ur en teckensträng: --> s1 = s(1:5) s1 = Hello --> s2 = s(length(s)) s2 = ? eller sätta ihop två strängar: --> s = [s1 s2] s = Hello?

Teckensträngar (forts.) Funktionen num2str() kan användas för att konvertera nummer till teckensträngar. >> tau = num2str(2*pi) %Detta konverterar det numeriska tau = %värdet 2*pi till teckensträngen 6.2832 %’6.2832’ Det går även att specificera hur många värdesiffror som skall ingå. >> tau = num2str(2*pi,8) %resulterar i 7 värdesiffror tau = %eftersom en plats i teckensträngen 6.2831853 %tas upp av decimalkommat Funktionen är användbar när nummer behöver infogas i textsträngar.