abc Matlab - elektronski priručnik
II dio Osnove Matlaba kao jezika - 2.1. Matrice i magični kvadrati

2.1.3. sum, transpose i diag

Dosad je vjerovatno već jasno da specijalne osobine magičnog kvadrata imaju neke veze sa različitim načinima sabiranja njegovih elemenata. Ako izračunamo sumu duž bilo kog reda ili kolone, ili duž bilo koje od dve glavne dijagonale, dobićemo uvijek isti broj. Potvrdićemo to koristeći Matlab. Prva naredba koju ćemo probati je

sum(A)

Matlab odgovara sa

ans =
34        34        34        34

Kada ne specificiramo izlaznu varijablu, Matlab koristi varijablu ans, skraćeno od answer, da spremi rezultate izračunavanja. Izračunali smo vektor-red koji sadrži sume kolona od A. Svaka od kolona ima istu sumu, magičnu sumu, 34.

A šta je sa sumama redova? Matlab preferira rad sa kolonama matrice, tako da je jedan način da se dobiju sume redova transponovanje matrice, izračunavanje suma kolona transponovane matrice, a onda transponovanje rezultata.

Matlab ima dva operatora transponovanja. Operator apostrof (na primjer, A') izvršava konjugovano kompleksno transponovanje. On okreće matricu preko njene glavne dijagonale, a takođe mijenja znak imaginarne komponente svakog kompleksnog elementa matrice. Operator tačka-apostrof (A.'), transponuje bez uticaja na znak kompleksnog elementa. Za matrice koje sadrže sve realne elemente, dva operatora vraćaju isti rezultat.

Tako
A'
proizvodi

ans =
16          5          9          4
3        10          6        15
2        11          7        14
13          8        12          1
a
sum(A')'

proizvodi vektor-kolonu koji sadrži sume redova

ans =
34
34
34
34

Kao dodatni način da saberemo redove, a koji izbjegava duplo transponovanje, koristimo dimenzioni argument za funkciju sum:

sum(A,2)

proizvodi

ans =
34
34
34
34

Suma elemenata na glavnoj dijagonali je dobijena pomoću funkcija sum i diag:

diag(A)

proizvodi

ans =
16
10
7
1
a

sum(diag(A))

proizvodi

ans =
34

Druga dijagonala, tzv. antidijagonala, matematički nije naročito važna, pa Matlab nema gotovu funkciju za nju. Ali funkcija izvorno namijenjena za upotrebu u grafici, fliplr, okreće matricu s lijeva na desno:

sum(diag(fliplr(A)))
ans =
34

Potvrdili smo da je matrica sa Direrove gravure zaista magični kvadrat i, usput, pokazali smo nekoliko Matlabovih matričnih operacija. U narednim odjeljcima nastavićemo da koristimo ovu matricu da ilustrujemo dodatne mogućnosti Matlaba.

Učitavanje matrica    <    Index    >    Funkcija magic