You are on page 1of 6

Osnovni elementi Matlab-a

Po startovanju programa otvara se komandni prozor i pojavljuje se simbol >>, koji se naziva
“prompt”, a koji označava da je Matlab spreman da prihvati podatke ili naredbe. Tekst u
komandnom prozoru se briše naredbom clc.
Osnovni objekt u Matlab-u je matrica dimenzija m×n, a sve elementarne operacije su tako
definisane da podržavaju rad sa matricama. Time je omogućeno da se sve matematičke i
logičke operacije, kao i iskazi u Matlab-u definišu i izvode na isti način kao što bi ih pisali na
papiru. Vektori su posebni slučajevi matrica 1×n ili n×1, dok su skalarne veličine poseban
slučaj matrice 1x1.
Unošenje podataka pomoću tastature.
Postoji više načina za unošenje podataka koje treba obraditi:
 pomoću tastature,
 generisanjem pomoću posebnih funkcija,
 učitavanjem iz fajla,
 kao rezultat neke prethodne operacije.
Pretpostavimo da u Matlab treba uneti vrednost skalarne promenljive x = 5. To se može
uraditi na sledeći način. Kada se pojavi prompt >>, ukucavanjem: >> x=5; vrednost
promenljive x se smešta u radnu memoriju Matlab–a (Workspace) i može se pozivati i
koristiti sve dok se:
a) ne izađe iz programa,
b) ne predefiniše unošenjem neke druge vrednosti ili izvršavanjem određene operacije,
c) ne izbriše iz radne memorije komandom clear x,
d) komandom clear ne izbriše cela radna memorija.
Ukoliko se prilikom bilo kakvog dodeljivanja vrednosti promenljivoj izostavi znak ; ta
promenljiva će se još i štampati na ekranu, tako da naredba:
>> x=5
daje kao rezultat na ekranu:
x=
5
Pretpostavimo sada da u Matlab treba uneti vrednost vektora b, koji ima sledeće elemente
[1 4 5 6 7 12.3]. To se može uraditi na sledeći način:
>> b=[1 4 5 6 7 12.3];
Matrica A dimenzija 4×3, zadata kao:

može se uneti u memoriju na više načina. Jedan od njih je:


>> A=[1 7 8; 9 2 11; 0 3 2.1; 2.4 8 100];

1
Matrica se može zadati i unošenjem svakog elementa posebno:
>> A(1,1)=1; A(1,2)=7; A(1,3)=8; A(2,1)=9; A(2,2)=2; A(2,3)=11;
>> A(3,1)=0; A(3,2)=3; A(3,3)=2.1; A(4,1)=2.4; A(4,2)=8; A(4,3)=100;
Takođe, matrica se može uneti zadavanjem vrsta ili kolona
>> A(1,:)=[1 7 8];A(2,:)=[9 2 11];A(3,:)=[0 3 2.1];A(4,:)=[2.4 8 100];
>> A(:,1)=[1 9 0 2.4];A(:,2)=[7 2 3 8];A(:,3)=[8 11 2.1 100];
Elementima matrice pristupa se preko njihovog indeksa. Osim pojedinačnih elemenata
matrice, moguće je izdvojiti vrstu, kolonu ili bilo koju podmatricu. Za matricu definisanu
izrazom:
>> A = [1 2 3; 4 5 6; 7 8 9];
element A(2,2) bi bio:
>> A(2,2)
ans =
5
Izdvajanje treće kolone matrice A vrši se izrazom:
>> A(:, 3)
ans =
3
6
9
Podmatrica koja predstavlja presek prve i treće vrste i druge i treće kolone matrice A dobija
se izrazom:
>> A([1 3], [2 3])
ans =
23
89
Prethodni rezultat se može dobiti i izrazom:
>> A(1:2:3, 2:3)
U izrazima za selekciju elemenata matrice moguće je koristiti i prethodno definisane vektore
– promenljive. U MATLAB-u je moguće promeniti i dimenzije matrice. Na primer, izraz
>> A = [A; 10 11 12]
A=
1 2 3
4 5 6
7 8 9
10 11 12

2
će proširiti matricu A novom vrstom. Slično tome, sledeća komanda će ukloniti drugu kolonu
iz matrice A.
>> A = A(:, [1 3])
A=
1 3
4 6
7 9
10 11
Ukoliko se matrica proširuje novim elementima, a ne definišu se vrednosti svih novih
elemenata, za njihove vrednosti se uzima nula. Na primer:
>> x = 1 : 4;
>> x(6) = 7
x=
123407
Osnovne operacije u Matlab-u
Matrice se mogu generisati i kao rezultat osnovnih aritmetičkih ili logičkih operacija. Na
primer, ako se pođe od već zadate matrice A, kucanjem:
>> C=A';
dobija se transponovana matrica C, pošto je ' operator za transpoziciju1.
U sledećoj tabeli su prikazane elementarne matematičke operacije nad matricama u Matlab-
u:

Operacija Simbol Primer

sabiranje + >> B = A+C;

oduzimanje - >> B = A-C;

deljenje / >> y = 1/x;

stepenovanje yx ^ >> z = y^x;

množenje matrica * >> D = D*E; po pravilima matričnog množenja

Ukoliko su matrice neodgovarajućih dimenzija, program prijavljuje grešku. Na primer,


kucanjem naredbe:
>> [3 1]*[2 3];
pojaviće se poruka
??? Error using ==> mtimes
Inner matrix dimensions must agree.

1 Ukoliko matrica sadrži kompleksne brojeve operator ' će istovremeno sa transponovanjem vršiti i
konjugovanje kompleksnih brojeva. U ovom slučaju ukoliko je potrebno samo izvršiti transponovanje matrice
koristi se operator .'
3
U opštem slučaju, ako se operator . stavi ispred simbola neke matematičke operacije, time
se označava da se ta operacija sprovodi između odgovarajućih elemenata matrica. Tako je:
>> D = D.*E množenje matrica element po element
>> F = D.^E stepenovanje svih elemenata matrice D odgovarajućim elementom matrice E
>> F = D./E deljenje svakog elemenata matrice D odgovarajućim elementom matrice E
dok je:
>> F=D\E deljenje matrica D i E sleva, odnosno –1 = ⋅ F D E
>> F=D/E deljenje matrica D i E sdesna, odnosno –1 = ⋅ FDE

Osnovne matematičke funkcije u Matlab-u


U Matlab-u je implementiran izvestan broj elementarnih matematičkih funkcija, među kojima
su najvažnije prikazane u Tabeli 1. Ove funkcije daju skalarne vrednosti ako im je argument
skalarna veličina, a ako je argument vektor ili matrica, operacija se primenjuje na svaki
element vektora ili matrice. Detaljno objašnjenje na koji način se svaka funkcija koristi može
se dobiti naredbom help ime_funkcije, na primer, help abs.

Automatsko generisanje nekih specijalnih matrica u Matlab-u


Za formiranje matrica specijalne strukture, u Matlab-u postoje posebne naredbe: ones,
zeros, eye. Tako se npr. naredbom:
>> A = zeros(2,3);
generiše matrica A, koja ima dve vrste i tri kolone, a čiji su svi elementi jednaki nuli. Isto
tako:
>> B = ones(4,2);
generiše matricu B, dimenzija 4×2, kod koje su svi elementi jednaki jedinici, dok se
naredbom:
>> I = eye(7);
Za automatsko generisanje vektora veoma često se koristi operator :. Tako se kucanjem:
>> x = 3:8
dobija:
4
x= 3 4 5 6 7 8
odnosno, generiše se vektor-vrsta koji sadrži elemente od 3 do 8. Opšti oblik ove naredbe
je x = xmin:xkorak:xmax. Na taj način se generiše vektor x koji kao elemente ima brojeve
od xmin do xmax sa korakom xkorak. Ako je xkorak negativan broj, a xmin veće od xmax
dobija se vektor sa elementima u opadajućem redosledu.
Vektore možemo defnisati isto kao i matrice. Osim toga, ako nam je potreban vektor sa
jednako udaljenim članovima, za koji znamo prvi i poslednji član i korak između savaka dva
člana, tada možemo koristiti naredbu (npr. vektor sa članovima od 1 do 2 i korakom h=0.5):
>> v=1:0.5:2
v=
1.0 1.5000 2.0000
Ukoliko je korak h=1, ne moramo ga unositi već naredba može da ima oblik v=1:5.
Funkcije za pomoć u Matlab-u
Za informaciju o zauzeću radne memorije Matlab-a i promenljivima koje postoje, koriste se
naredbe who i whos. Naredba who daje spisak promenljivih koje su u radnoj memoriji, dok
whos daje još i podatak o količini memorije koju zauzima svaka promenljiva i veličini
preostale slobodne radne memorije. Ove naredbe se koriste u slučaju rada sa velikim
blokovima podataka (dugačkim vektorima ili matricama velikih dimenzija), kada zauzeće
memorije postaje kritičan faktor.
Verovatno najčešće korišćena funkcija u Matlab-u je help. Kako je broj funkcija u Matlab-u
izuzetno veliki, a mnoge imaju i više varijanti, nemoguće je znati sintaksu i namenu svake
od njih, pa naredbu help često upotrebljavaju i iskusni programeri.
Za određivanje dimenzija pojedinih promenljivih postoje naredbe length i size. Naredba
length daje broj elemenata određenog vektora. Tako na primer, kucanjem:
>> x = 0:0.1:1; nx = length(x)
dobijamo na ekranu vrednost promenljive nx koja predstavlja broj elemenata vektora x, kao:
nx =
11
Naredba size služi za određivanje dimenzija matrice. Ona kao izlaz daje vektor sa dva
elementa. Prvi element vektora je broj vrsta u matrici a drugi je broj kolona. Tako na primer,
ako u radnoj memoriji postoji matrica A veličine 2×3, kucanjem:
>> dim = size(A);
dobijamo vektor dim koji je jednak [2 3]. Odnosno, kucanjem:
>> [x,y] = size(A)
promenljivima x i y dodeljujemo vrednosti 2 i 3.
Opšte naredbe u matlabu

clc obriši tekst iz komandnog prozora

clear all obriši iz memorije sve inicijalizovane promenljive i funkcij

sort(x) Rezultat je matrica dobijena sortiranjem kolona matrice X u rastućem


redosledu.

5
min(x) Rezultat je najmanji element u matrici

max(x) Rezultat je najveci element u matrici

Zadaci:
1. Napravite 10-dimenzionalni vektor red čije su sve komponente 2. Broj 2 smete
koristiti samo jednom u zadatku.
>> 2*ones (1,10)
2. Dat je vektor a = [1 2 3 4 5]. Napraviti vektor b koji ima iste komponente kao a, samo
u suprotnom poretku.
>> a = [1 2 3 4 5]
>> b = a(1,5:-1:1)
3. Funkcije min/max služe pronalaženju najmanjeg/najvećeg elementa matrice. Da ih
nemate na raspolaganju, kako biste pronašli najmanju/najveću komponentu vektora?
a = [3,5,2,4,1].
>> a = [3,5,2,1,4]
>> vekt = sort(a)
>> mini=vekt(1)
>> ans=1
>> maxi=vekt(length(vekt))
>> ans=5
4. Data je matrica A = [ 23 5 -9; -18 12 6; 13 -11 4] . Pomoću funkcija Min/max izdvojiti
najmanji element iz prve kolone i najveći element iz drugog reda.
>> j = min(A(:,1))
>> k = max(A(2,:))
5. Ugrađena MATLAB funkcija sort(a) sortira komponente vektora a u uzlaznom
poretku. Iskoristite funkciju sort da biste sortirali a u silaznom poretku a = [3,5,2,4,1].
>> a = [3,5,2,1,4]
>> sort (a)
>> ans = 1 2 3 4 5

You might also like