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:

GNU Octave, 8.3 Arithmetic Operators från delorie software

by Malin Christersson under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Sweden License

www.malinc.se