Skalär, vektor, och matris
En skalär är ett annat ord för tal. Ordet används för att särskilja tal från vektorer och matriser.
Rader och kolonner
Man gör en radmatris bestående av talen 4 5 6 7 genom att skriva talen innanför []-parenteser och separera dem med antingen komma eller blank.
>>> r1=[4, 5, 6, 7] r1 = 4 5 6 7 >>> r2=[4 5 6 7] r2 = 4 5 6 7
Man gör en kolonnmatris bestående av talen 0.1 0.2 0.3 genom att skriva talen innanför []-parenteser och separera dem med semikolon.
>>> c1=[0.1; 0.2; 0.3] c1 = 0.10000 0.20000 0.30000 >>> c2=[0.4; 0.5] c2 = 0.40000 0.50000
Rad- och kolonnmatriser kallas ibland vektorer.
Man kan slå ihop radmatriser respektive kolonnmatriser.
>>> r=[r1, r2]
r =
4 5 6 4 5 6
>>> c=[c1; c2]
c =
0.10000
0.20000
0.30000
0.40000
0.50000
>>> try_a_mix=[r1, c1]
>>>error: number of rows must match (3 != 1) near line 43, column 16
Det första talet i en vektor har index 1. Man kan komma åt ett tal i en vektor genom att ange dess index.
>>> r(2)
ans = 5
>>> c(5)
ans = 0.50000
>>> r(7)
error: A(I): Index exceeds matrix dimension.
Man kan använda samma notation som används i for-satser för att generera en vektor.
>>> r3=3:7 r3 = 3 4 5 6 7 >>> r4=1:3:10 r4 = 1 4 7 10
Samma notation kan användas för att komma åt en del av en vektor.
>>> format bank; >>> r5=0.1:0.1:1 r5 = 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00 >>> subvector1=r5(2:4) subvector1 = 0.20 0.30 0.40 >>> subvector2=r5(1:2:10) subvector2 = 0.10 0.30 0.50 0.70 0.90
Man kan göra om en radmatris till en kolonnmatris och vice versa genom att transponera med hjälp av operatorn '.
>>> r=[1, 2, 3] r = 1.00 2.00 3.00 >>> c=r' c = 1.00 2.00 3.00
Aritmetik med matriser och skalärer
Man kan använda de aritmetiska operatorerna +
, -
,
*
och /
på en matris och en skalär. Operation
appliceras då på varje element i matrisen.
>>> r=[4, 5, 6] r = 4.00 5.00 6.00 >>> r1=r*6 r1 = 24.00 30.00 36.00 >>> r2=(r1-20)/2 r2 = 2.00 5.00 8.00 >>> c=[0.5; 3.5] c = 0.50 3.50 >>> c1=c+0.5 c1 = 1.00 4.00
Funktioner av matriser
Man kan använda funktioner på matriser, funktionen appliceras då på varje element i matrisen.
>>> c=[4;16] c = 4.00 16.00 >>> sqrt(c) ans = 2.00 4.00
Generella matriser
En generell matris består av n rader och m kolonner.
Prova dessa kommandon:
m=[1 2 3 4 5;6 7 8 9 10; 11 12 13 14 15] m+2 (m-3)*2 size(m) a=m(2,4) m>4
Övning
Pröva kommandona ones(3), zeros(4), eye(5)
!
Elementvisa operationer
Man kan utföra elementvisa operationer på två matriser av samma dimension, dvs med samma antal rader respektive kolonner. Då man utför en elementvis operation blir resultatet en ny matris av samma dimension som operanderna.
Då man gör en elementvis addition, blir elementet på plats
(row, col)
i resultatmatrisen summan av elementen på plats
(row, col)
i operanderna.
De aritmetiska operatorerna blir elementvisa operatorer om man skriver dit en punkt framför dem.
.+ .- .* ./ .^
>>> m1 m1 = 1 2 3 4 5 6 >>> m2 m2 = 0 1 1 2 2 0 >>> m1./m2 ans = Inf 2.0000 3.0000 2.0000 2.5000 Inf >>> m1.^m2 ans = 1 2 3 16 25 1
Då man tar funktionen av en matris appliceras funktionen på varje element.
>>> m=[0 pi pi/2;-pi -pi/2 0] m = 0.00000 3.14159 1.57080 -3.14159 -1.57080 0.00000 >>> sin(m) ans = 0.00000 0.00000 1.00000 -0.00000 -1.00000 0.00000
Med hjälp av elementvisa operationer kan man kombinera jämförelser och aritmetik.
>>> m=[1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15] m = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 >>> m1=m>4 m1 = 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 >>> m2=m1.*m m2 = 0 0 0 0 5 6 7 8 9 10 11 12 13 14 15
Vanlig linjär algebra
Inom matematiken är matris-addition och -subtraktion definierade som elementvisa
operationer. Om man använder operatorerna i Octave utan punkt framför
innebär det att man använder de "vanliga" operatorerna,
det är därför ingen skillnad mellan +
och .+
,
eller mellan -
och .-
. När det gäller multiplikation,
division och upphöjt-till är det emellertid skillnad på "vanliga"
operationer och elementvisa operationer; använd därför inte dessa
operatorer utan en punkt framför (såvida du inte kan linjär
algebra).
mer info:
by Malin Christersson under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Sweden License