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);

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=fura(n)

ki=zeros(2*n);

ki(1:n,1:n)=1; %bal felső rész
ki(1:n,n+1:2*n)=3; %jobb felső rész
ki(n+1:2*n,1:n)=2; %bal alsó rész

Házi feladatok

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;

4. feladat: Írjunk olyan függvényt, amelynek bemenete egy négyzetes mátrix. A függvény keresse meg a legnagyobb elemet a mátrixban azok közül, amelyek valamelyik páratlanadik sorban vannak.

function ki=maxPtlan(A)

ki=max(max(A(1:2:end, :)));