Második labor
Contents
Vektorok és mátrixok megadása
Elemenként: szögletes zárójelben a sorvektort
v=[1 2 4];
;-el elválasztva az oszlopvektort:
w=[5 ; 6 ; -1]
w = 5 6 -1
Mátrixok esetén a sorok közé ; kell, a mátrix voltaképpen egy (sor)vektorokból álló (oszlop)vektor
C=[1 0 3; 4 3 -1; 3 -5 8]
C = 1 0 3 4 3 -1 3 -5 8
itt az 1 0 3 az elsõ sor,
Vagy lehet elõre definiált függvényekkel:
Olyan matrix aminek diagonálisa (főátlója) a bemenetként kapott vektor
A=diag(v)
A = 1 0 0 0 2 0 0 0 4
5*5-os egység mátrix
I=eye(5)
I = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
csupa 0-t tartalmazó 5*2-os mátrix
Z=zeros(5,2)
Z = 0 0 0 0 0 0 0 0 0 0
csupa egyet
E=ones(2,3)
E = 1 1 1 1 1 1
a mátrix mérete
size(C)
ans = 3 3
sorainak száma
size(C,1)
ans = 3
oszlopainak a száma
size(C,2)
ans = 3
a sorainak és oszlopainak száma közül a nagyobb (vektor esetén a hossz)
length(C)
ans = 3
Mátrixok indexelése
C
C = 1 0 3 4 3 -1 3 -5 8
egy konkrét elem lekérdezése (3. sor 2. oszlop)
C(3,2)
ans = -5
oszlopfolytonosan számítva a 6. elem
C(6)
ans = -5
Elsõ sor lekérése
C(1,:)
ans = 1 0 3
ez itt a felsõ 2*2-es mátrix
C(1:2,1:2)
ans = 1 0 4 3
Ez pedig C minden második oszlopa
C(:,1:2:3)
ans = 1 3 4 -1 3 8
Órai feladatok
1. feladat: Írjunk olyan függvényt, melynek bemenete egy valós elemû mátrix és egy pozitív egész n, a kimenete pedig a mátrix bal felsõ n*n-es sarka.
function ki=balFelso(A,n)
ki=A(1:n,1:n);
Házi feladatok
2. feladat: Írjunk olyan függvényt, melynek bemenete egy n pozitív szám, a kimenete pedig egy 2*n-szer 2*n-es mátrix, melynek balfelsõ n*n-es sarkában csupa 1-es áll, a jobbfelsõ n*n-es sarkában csupa 3-as, a balalsó sarkában csupa 2-es, a jobbalsó sarkában pedig csupa 0-s.
function ki=negyzetes(n)
ki=ones(2*n);
ki(1:n, n+1:2*n)=3;
ki(n+1:2*n, 1:n)=2;
ki(n+1:2*n,n+1:2*n)=0;
3. feladat: Írjunk olyan függvényt, melynek két bemenete n és m pozitív egészek, és készít egy olyan n*m-es mátrixot ("sakktáblát"), melyben csupa 0 és 1 szerepel, méghozzá úgy, hogy a bal felsõ elem 1-es, és a szomszédos mezõkön különbözõ számok állnak!
function ki=sakktabla(n,m)
ki=zeros(n,m);
ki(1:2:n,1:2:m)=1;
ki(2:2:n,2:2:m)=1;