abc Matlab - elektronski priručnik
VII dio Dodaci /APPENDIX/ - 7.1. Programiranje u Matlabu 1
7.1.3. Kontrola toka
7.1.3.1. Kontrola toka - Ponavljanje sa for petljama
Ovdje je prikazana sintaksa for petlje
for k = array
komande
end
Komande između for i end naredbi se izvršavaju za sve vrijednosti spremljene u array.
Pretpostavimo da nam trebaju vrijednosti sinusne funkcije u jedanaest jednako razmaknutih tačaka nπ/10, za n = 0, 1, …, 10. Da bismo generisali ove brojeve možemo koristiti for petlju
for n=0:10
x(n+1) = sin(pi*n/10);
end
x
x =
Columns 1 through 7
0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
Columns 8 through 11
0.8090 0.5878 0.3090 0.0000
for petlje mogu biti ugniježdene
H = zeros(5);
for k=1:5
for l=1:5
H(k,l) = 1/(k+l-1);
end
end
for petlje mogu biti ugniježdene
H
H =
1.0000 0.5000 0.3333 0.2500 0.2000
0.5000 0.3333 0.2500 0.2000 0.1667
0.3333 0.2500 0.2000 0.1667 0.1429
0.2500 0.2000 0.1667 0.1429 0.1250
0.2000 0.1667 0.1429 0.1250 0.1111
Matrica H kreirana ovdje se naziva Hilbertova matrica. Prva komanda dodjeljuje prostor u memoriji računara za matricu koja će se generisati. Ovo je dodato da bi se redukovao prostor koji zahtijevaju petlje u MATLAB-u.
for petlja se treba koristiti samo ako se druge metode ne mogu primijeniti. Razmotrimo sljedeći problem. Generišimo 10-sa-10 matricu A = [akl], gdje je akl = sin(k)cos(l). Koristeći ugniježdene petlje možemo izračunati unose u matricu A pomoću sljedećeg koda
A = zeros(10);
for k=1:10
for l=1:10
A(k,l) = sin(k)*cos(l);
end
end
Slobodna verzija petlje može izgledati kao
k = 1:10;
A = sin(k)'*cos(k);
Prva komanda generiše red niz k koji se sastoji od cijelih brojeva 1, 2, … , 10. Komanda sin(k)' kreira kolonski vektor dok je cos(k) vektor-red. Komponente oba vektora su vrijednosti dve trigonometrijske funkcije evaluirane na k. Gore navedeni kod ilustruje moćno svojstvo MATLAB-a koje se naziva vektorizacija. Ova tehnika se treba koristiti kad god je to moguće.
Kontrola toka < Index > Kontrola toka - Ponavljanje sa while petljama
|