MAS135: MATLAB for Mechanical
Engineers
Forelesning 2 : Vektorer. Matriser.
Indeksering. Enkle plot
Victoria Popsueva
Bergen, C208
21 august 2018
Matriser og vektorer (arrays)
• Alle variabler i MATLAB er «egentlig» vektorer eller
matriser.
• Skalarer er spesialtilfeller av matriser – dvs 1 × 1
matriser.
• Størrelsen til en vektor elle en matrise blir bestemt
når den defineres. (NB! Kilde til feil!)
• Man også forandre dimensjonene til
vektoren/matrisen underveis. (som verdien til en
variabel) -> også en viktig kilde til feil…
• Derfor – hold øye med dem i workspace…
Hvordan lage en vektor
• En vektor (one-dimensional array): en rekke med tall
arrangert i en rekke eller søyle (row or column vector)
• I MatLab kan de lages på flere måter, bl.a.:
• Man lager en (rekke)vektor ved å skrive
Navnet_til_vektoren = [elementene i vektoren]
• En kolonnevektor får man ved å skrive Kolonnevektor =
[element1; element2; ... elementN]
• Det er en matematisk forskjell på rekke- og
kolonnevektorer, så det er viktig å være oppmerksom
• Transponeringsoperator ‘ gjør søyler om til rekker
Vektorer: enkelt eksempel
• >> a = [1 2 3]
• a =
• 1 2 3
• >> a = [1 2 3]'
• a =
• 1
• 2
• 3
• >> a = [1; 2; 3]
• a =
• 1
• 2
• 3
Flere måter å lage en vektor på
• Vi kan lage vektorer som inneholder tall med en gitt differanse mellom tallene:
Navnet_til_vektoren = [start:differanse:slutt]
parenteser kan droppes. Hvis man dropper differansen, blir den satt til 1
Hvis man «bommer» s.a. den gitte differansen i går opp til siste element, så droppes
det siste elementet og erstattes med det nærmeste tallet som passer med den gitte
differansen
• Eller
Navnet_til_vektoren = linspace(start, slutt, antall_elementer)
• F.eks. vektor = [2:2:10]
vektor =
2 4 6 8 10
Matriser (two-dimensional arrays)
• I likhet med en vektor, kan vi lage en matrise på denne måten:
Matrise = [elementer i 1 rekke; … ; elementer i Nte rekke]
• F.eks. >> a = [1 2 3; 4 5 6; 7 8 9]
a = 1 2 3
4 5 6
7 8 9
Matriser og vektorer-forts.
• Alle rekkevektorene må ha samme lengde!
• Hvis noen matriseelementer er null, så må man skrive 0
• Elementene i matriser/vektorer har samme indeksering som i
matematisk notasjon:
• Vektor(n) = Vektor(element nummer n) = gir n-te element i vektoren
• A(m,n) = A(rekke, søyle) = gir matriseelement i rekke m, søyle n
Mer om matriser
• zeros(m,n), ones(m,n) og eye(m,n) lager m ganger n matriser med
henholdsvis alle elemneter lik null, 1 eller en diagonal matrise med
diagonalelementene lik 1.
• Transponeringsperatoren ’ virker på matriser også, som speiling om
diagonalen
Bruk av (:)
• Kolon-tegnet (:) er svært nyttig når vi trenger å få tak i flere elementer
på en gang. Denne notasjonen virker på både vektorer og matriser.
• For vektorer:
v(:) alle elementene i vektor v
v(m:n) alle elementene fra og med element m og til og med element n
Bruk av (:)
• A(:,n) alle elementene i søyle nummer n
• A(n,:) alle elementene i rekke nummer n
• A(:,m:n) alle elementene fra søyle nummer m og til søyle nummer n
• A(m:n,:) alle elementene fra rekke nummer m og til rekke nummer n
• A(m:n,p:q) alle elementene fra rekke nummer m til rekke nummer n og fra
søyle nummer p og til søyle nummer q
Matriseindekser
• For eksempel en matrise
• >> a = 1 2 3
4 5 6
2 3 4
>> a(2:3,1:2)
ans =
4 5
2 3
Oppgaver
• Oppg. I boka: 3,7 og 12, 13, 34, 35, 42
Manipulasjoner med vektorer
• Man kan legge flere elementer til en vektor :
>> v = [1 2 3 4];
>> v(7) = 2
v =
1 2 3 4 0 0 2
Legg merke til at her vil MATLAB sette inn nuller foran det siste
elementet!
Manipulasjoner med matriser
• Å legge til en ekstra rekke til en matrise:
>> b = [10 11 12];
>> c = [a;b]
c = 1 2 3
4 5 6
7 8 9
10 11 12
Manipulasjoner med matriser
• Man kan utvide en matrise ved å legge til et element ”som det ikke er
plass til” – da vil matrisen utvides ved at det fylles inn nuller der det
ikke er tall (se eksempel)
• Det blir ikke gitt noen feilmelding – man må passe på selv!
Tips
• Viktig å holde styr på hvor store matrisene/vektorene er!
• MATLAB gir feilmeldinger dersom dimensjonene ikke matcher, men
forteller ikke hvor det er mismatch.
• Derfor:
length(v) gir antall elementer i vektoren v
size(a) gir dimensjonene til matrisen a

Mas135 forelesning2

  • 1.
    MAS135: MATLAB forMechanical Engineers Forelesning 2 : Vektorer. Matriser. Indeksering. Enkle plot Victoria Popsueva Bergen, C208 21 august 2018
  • 2.
    Matriser og vektorer(arrays) • Alle variabler i MATLAB er «egentlig» vektorer eller matriser. • Skalarer er spesialtilfeller av matriser – dvs 1 × 1 matriser. • Størrelsen til en vektor elle en matrise blir bestemt når den defineres. (NB! Kilde til feil!) • Man også forandre dimensjonene til vektoren/matrisen underveis. (som verdien til en variabel) -> også en viktig kilde til feil… • Derfor – hold øye med dem i workspace…
  • 3.
    Hvordan lage envektor • En vektor (one-dimensional array): en rekke med tall arrangert i en rekke eller søyle (row or column vector) • I MatLab kan de lages på flere måter, bl.a.: • Man lager en (rekke)vektor ved å skrive Navnet_til_vektoren = [elementene i vektoren] • En kolonnevektor får man ved å skrive Kolonnevektor = [element1; element2; ... elementN] • Det er en matematisk forskjell på rekke- og kolonnevektorer, så det er viktig å være oppmerksom • Transponeringsoperator ‘ gjør søyler om til rekker
  • 4.
    Vektorer: enkelt eksempel •>> a = [1 2 3] • a = • 1 2 3 • >> a = [1 2 3]' • a = • 1 • 2 • 3 • >> a = [1; 2; 3] • a = • 1 • 2 • 3
  • 5.
    Flere måter ålage en vektor på • Vi kan lage vektorer som inneholder tall med en gitt differanse mellom tallene: Navnet_til_vektoren = [start:differanse:slutt] parenteser kan droppes. Hvis man dropper differansen, blir den satt til 1 Hvis man «bommer» s.a. den gitte differansen i går opp til siste element, så droppes det siste elementet og erstattes med det nærmeste tallet som passer med den gitte differansen • Eller Navnet_til_vektoren = linspace(start, slutt, antall_elementer) • F.eks. vektor = [2:2:10] vektor = 2 4 6 8 10
  • 6.
    Matriser (two-dimensional arrays) •I likhet med en vektor, kan vi lage en matrise på denne måten: Matrise = [elementer i 1 rekke; … ; elementer i Nte rekke] • F.eks. >> a = [1 2 3; 4 5 6; 7 8 9] a = 1 2 3 4 5 6 7 8 9
  • 7.
    Matriser og vektorer-forts. •Alle rekkevektorene må ha samme lengde! • Hvis noen matriseelementer er null, så må man skrive 0 • Elementene i matriser/vektorer har samme indeksering som i matematisk notasjon: • Vektor(n) = Vektor(element nummer n) = gir n-te element i vektoren • A(m,n) = A(rekke, søyle) = gir matriseelement i rekke m, søyle n
  • 8.
    Mer om matriser •zeros(m,n), ones(m,n) og eye(m,n) lager m ganger n matriser med henholdsvis alle elemneter lik null, 1 eller en diagonal matrise med diagonalelementene lik 1. • Transponeringsperatoren ’ virker på matriser også, som speiling om diagonalen
  • 9.
    Bruk av (:) •Kolon-tegnet (:) er svært nyttig når vi trenger å få tak i flere elementer på en gang. Denne notasjonen virker på både vektorer og matriser. • For vektorer: v(:) alle elementene i vektor v v(m:n) alle elementene fra og med element m og til og med element n
  • 10.
    Bruk av (:) •A(:,n) alle elementene i søyle nummer n • A(n,:) alle elementene i rekke nummer n • A(:,m:n) alle elementene fra søyle nummer m og til søyle nummer n • A(m:n,:) alle elementene fra rekke nummer m og til rekke nummer n • A(m:n,p:q) alle elementene fra rekke nummer m til rekke nummer n og fra søyle nummer p og til søyle nummer q
  • 11.
    Matriseindekser • For eksempelen matrise • >> a = 1 2 3 4 5 6 2 3 4 >> a(2:3,1:2) ans = 4 5 2 3
  • 12.
    Oppgaver • Oppg. Iboka: 3,7 og 12, 13, 34, 35, 42
  • 13.
    Manipulasjoner med vektorer •Man kan legge flere elementer til en vektor : >> v = [1 2 3 4]; >> v(7) = 2 v = 1 2 3 4 0 0 2 Legg merke til at her vil MATLAB sette inn nuller foran det siste elementet!
  • 14.
    Manipulasjoner med matriser •Å legge til en ekstra rekke til en matrise: >> b = [10 11 12]; >> c = [a;b] c = 1 2 3 4 5 6 7 8 9 10 11 12
  • 15.
    Manipulasjoner med matriser •Man kan utvide en matrise ved å legge til et element ”som det ikke er plass til” – da vil matrisen utvides ved at det fylles inn nuller der det ikke er tall (se eksempel) • Det blir ikke gitt noen feilmelding – man må passe på selv!
  • 16.
    Tips • Viktig åholde styr på hvor store matrisene/vektorene er! • MATLAB gir feilmeldinger dersom dimensjonene ikke matcher, men forteller ikke hvor det er mismatch. • Derfor: length(v) gir antall elementer i vektoren v size(a) gir dimensjonene til matrisen a