background image

 

POLITECHNIKA ŁÓDZKA 

Katedra Techniki Cieplnej i Chłodnictwa 

 

 
 
 
 
 
 
 
 
 
 

TECHNOLOGIE 

INFORMATYCZNE 

 
 
 
 
 

MATLAB 

 
 

Część III 

 
 

 Temat:   Elementy programowania 

 

 
 
 

 Opracował: dr inż. Artur Gutkowski 

 
 
 
 
 
 
 

Łódź - 2008

 

 

Katedra Techniki Cieplnej i Chłodnictwa 

90-924 Łódź; ul. Stefanowskiego 1/15 
tel. 042 631 23 12; 042 631 23 11; fax 042 636 74 81; e-mail: k15@p.lodz.pl

 

 

background image

 
 
 
 
 
Spis Treści 

 
 
 
 
 
 
 
1. Wstęp .......................................................................................................................................... - 3 - 

2. Operatory relacji ......................................................................................................................... - 3 - 

3. Operatory logiczne...................................................................................................................... - 5 - 

4. Instrukcje..................................................................................................................................... - 7 - 

5. Skrypty i funkcje....................................................................................................................... - 12 - 

6. Literatura................................................................................................................................... - 15 - 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

 

- 3 -

1. Wstęp 

 

MATLAB tak jak i inne współczesne języki programowania wysokiego poziomu został 

wyposażony w różnego rodzaju instrukcje sterujące, które umożliwiają tworzenie algorytmów  
i programów. W niniejszej instrukcji zostały omówione sposoby korzystania z operatorów relacji, 
operatorów logicznych a także instrukcji. Omówiono także podstawy tworzenia plików tekstowych 
tzw. M-plików. 
 
 

2. Operatory relacji 

 

MATLAB dysponuje sześcioma operatorami relacji, które pozwalają na dokonywanie 

porównań pomiędzy wyrażeniami. Wynikiem porównania jest albo prawda (TRUE (1)) albo fałsz 
(FALSE (0)). Poniżej zostały przedstawione operatory relacji oraz ich sposób zapisu w MATLAB-
ie: 
 

• mniejszy (<) 
• mniejszy lub równy (< =) 
• większy (>) 
• większy lub równy (> =) 
• równy (= =) 
• różny (~ =) 

 

Sprawdźmy jak sprawują się powyższe operatory podczas porównań skalarów i wektorów. Na 

początek porównajmy dwie liczby: 
 
>> 4 < 9 
ans = 

 1 
>> 
 

W tym przypadku odpowiedzią programu jest prawda (1) cztery jest mniejsze od dziewięciu. 

 
>> 4 > 9 
ans = 

 0 
>> 
 
Jeżeli odwrócimy znak, MATLAB zwróci fałsz (0), ponieważ 4 nie jest większe od 9. 
 

W przypadku porównania skalara z wektorem, program porównuje skalara z każdym 

elementem wektora. Wynikiem jest wektor o takim samym rozmiarze jak ten porównywany, 
składający się z zer i jedynek np.: 
 
>> A = [5, 7, 9]; 
>> 8 < A 
ans = 

  0 0 1 
>> 
 

background image

 

- 4 -

Poniższy zapis oznacza, że mają być wyświetlone te elementy wektora A, które spełniają 

warunek zawarty w nawiasie: 
 
>> A(8 < A) 

ans = 
 9 

>> 
 

Poniżej jest przedstawiony sposób wyświetlania elementów spełniających warunek, 

jednocześnie z zachowaniem ich pozycji w wektorze: 
 
>> A.*(8 < A) 

ans = 
  0 0 9 
>> 
 

Przeanalizujmy teraz powyższy zapis. Wynikiem operacji zawartej w nawiasie jest wektor 

składający się z zer i jedynek w zależności czy dany element spełnia warunek czy nie. Następnie 
ten wektor jest mnożony tablicowo z wektorem A. W miejscu gdzie warunek był fałszywy 
odpowiedni element macierzy A jest mnożony przez zero, a tam gdzie był prawdziwy dany element 
macierzy A jest mnożony przez jeden. Dzięki temu w miejscach gdzie warunek nie był spełniony 
otrzymujemy zero a w miejscach, gdzie warunek był spełniony jest wyświetlana dana liczba. 
 

W przypadku porównywania dwóch wektorów należy pamiętać, że muszą one mieć ten sam 

rozmiar, ponieważ porównywane są elementy o tych samych współrzędnych np.: 
 
>> A = [5, 7, 9]; 
>> B = [1, 8, 3]; 

>> A < B 
ans = 
  0 1 0 

>> 
 

W jednym wierszu można porównywać kilka liczb, ale trzeba pamiętać o kilku rzeczach. Po 

pierwsze MATLAB pracuje od strony lewej do prawej. Po drugie po pierwszym porównaniu 
program porównuje wynik tej operacji czyli 0 lub 1 z następną liczbą, dla lepszego zrozumienia 
prześledźmy następującą operację: 
 
>> 9 < 6 < 2 

ans = 
 1 

>> 
 

W pierwszej kolejności MATLAB sprawdza czy 9 < 6, wynikiem tego jest fałsz czyli 0, 

następnie porównuje czy 0 < 2, wynikiem jest prawda czyli 1. 
 

Jeżeli w zapisie pojawiają się nawiasy program w pierwszej kolejności wykonuje działanie 

umieszczone w nawiasach np.: 
 
>> 9 < (6 < 2) 

ans = 
 0 

background image

 

- 5 -

Czyli najpierw sprawdza czy 6 < 2, wynikiem jest fałsz czyli 0, a następnie porównuje czy  

9 < 0, w tym przypadku wynikiem także jest fałsz (0). 
 
Podobne działanie jak = = ma funkcja isegual: 
 
>> A = [8, 4, 5, 2]; 

>> B = [2, 5, 5, 2]; 
>> C = isequal(A, B) 

C = 
 

 

 

 

 

 

%dwie macierze są różne 

>> B = [8, 4, 5, 2]; 

>> C = isequal(A, B) 
C = 

 

 

 

 

 

 

%dwie macierze są takie same 

>> 
 
 

3. Operatory logiczne 

 

Poniżej przedstawiono operatory logiczne, z którymi pracuje MATLAB: 

 

• iloczyn logiczny AND (&), (koniunkcja), 
• suma logiczna OR (|), (alternatywa), 
• negacja logiczna NOT (~), (zaprzeczenie), 
• różnica symetryczna XOR. 

 
Sposób działania tych operatorów został przedstawiony w Tabeli 1. 
 
Tabela 1. Sposób działania operatorów logicznych. 

 

(~A) 

A & B 

A | B 

XOR(A,B) 

0 0 1 0 0 0 
1 0 0 0 1 1 
0 1 1 0 1 1 
1 1 0 1 1 0 

 

Musimy pamiętać,  że MATLAB traktuje wszystkie liczby różne od zera jako prawdę a 

wszystkie zera jako fałsz. Dlatego też liczba – 3 jest logicznie prawdą a negacją będzie zero: 
 
>> ~-3 

ans = 
 0 
>> 
 

W przypadku wektora A, zwracany jest wektor składający się z negacji poszczególnych 

elementów A: 
 
>> A = [8, 0, -2, 0, 5]; 

>> ~A 
ans = 

  0 1 0 1 0 

background image

 

- 6 -

Operator AND zwraca prawdę tylko w przypadku, gdy obydwa elementy są TRUE,  

w innym przypadku zwraca fałsz np.: 
 
>> 5 & 0 
ans = 

 0 
>> 0 & 0 

ans = 
 0 

>> 5 & 2 
ans = 

 1 
>> 
 
I w przypadku wektorów: 
 
>> A = [5 0 0 3 1]; 

>> B = [1 2 0 4 0]; 
>> A & B 

ans = 
  1 0 0 1 0 

>> 
 

Jak widać z Tabeli 1 operator OR zwraca prawdę tylko wtedy, gdy chociaż jeden  

z porównywanych elementów jest TRUE np.: 
 
>> 3 | 0 

ans = 
 1 

>> 3 | 3 
ans = 
 1 

>> 0 | 0 
ans = 

 0 
>> 
 
Podobnie jest w przypadku wektorów: 
 
>> A = [5 0 0 3 1]; 
>> B = [1 2 0 4 0]; 

>> A | B 
ans = 
  1 1 0 1 1 

>> 
 

XOR działa w ten sposób, że zwraca prawdę w przypadku, gdy jeden z elementów jest 

TRUE a drugi FALSE a w innych przypadkach zwraca fałsz np.: 
 
>> A = [5 0 0 3 1]; 

>> B = [1 2 0 4 0]; 
>> xor(A, B) 

 

background image

 

- 7 -

ans = 
  0 1 0 0 1 

>> 
 

Innymi funkcjami logicznymi, którymi dysponuje MATLAB są:  all (wszystkie) i any 

(jakiś). Pierwsza funkcja zwraca prawdę tylko wtedy, gdy wszystkie elementy danego wektora są 
TRUE. Druga funkcja zwraca prawdę w przypadku, gdy chociaż jeden element wektora jest TRUE 
np.: 
 
 
>> A = [5 0 0 3 1]; 
>> any(A) 

ans = 
 1 
>> all(A) 

ans = 
 0 

>> 
 
 

4. Instrukcje 

 

Instrukcje, które są dostępne w MATLAB-ie ogólnie można podzielić na warunkowe, 

wyboru i iteracyjne. Do pierwszych z nich zaliczamy instrukcję  if-elseif-else-end, do 
drugiej instrukcję  switch-case-otherwise-end, a do trzeciej pętle  for-end i while-
end. 
 
Ogólna postać instrukcji if jest przedstawiona poniżej: 
 

if

 wyrażenie logiczne 1 

 

instrukcja 1 

 

elseif

 wyrażenie logiczne 2 

 

 instrukcja 

 

else 

 

 instrukcja 

 

end 

 

Sposób jej działania wygląda następująco: program sprawdza jako pierwsze „wyrażenie 

logiczne 1” jeżeli jest „prawdziwe” to wykonuje „instrukcję 1”. Jeżeli „wyrażenie logiczne 1” było 
„fałszywe” to program przechodzi do „wyrażenia logicznego 2” w przypadku „prawdy” wykonuje 
je, w przypadku „fałszu” przechodzi dalej. Poniżej napiszemy procedurę analizującą wiek osoby  
i przypisującą  ją do jednej z trzech grup: dziecko, młodzież, dorosły, do wyświetlenia wyniku 
posłuży funkcja disp: 
 
>> Wiek = 14;   

 

 

 

%wprowadzamy wiek osoby 

>> 

if

 Wiek <= 12 

 

 

 

%warunek 1 

disp(

‘dziecko’

elseif

 Wiek <= 18   

 

 

%warunek 2 

background image

 

- 8 -

disp(

‘mlodziez’

else 

      

%pozostałe przypadki 

disp(

‘dorosly’

end 

mlodziez 

     

%wyświetlany wynik

 

>> 
 

Przy powyższym zapisie wyrażeń logicznych znaczenie ma kolejność ich występowania. 

Gdyby na przykład zamienić miejscami pierwszy i drugi warunek a wielkość Wiek = 11, która jest 
mniejsza niż 18, osoba byłaby zakwalifikowana do młodzieży. Dla ułatwienia pracy MATLAB 
zmienia kolor słów kluczowych. 
 

Instrukcja switch sprawdza wartość wyrażenia i w zależności od tego wyniku przypisuje 

wykonanie pewnych instrukcji. Schemat instrukcji switch przedstawiono poniżej: 
 

switch

 wyrażenie 

 

case

 1 

 

instrukcja 1 

 

case

 2 

 

 instrukcja 

 

otherwise 

 

 instrukcja 

 

end 

 

Jako przykład podajmy zamianę oceny zapisanej jako cyfra na ocenę zapisaną słownie: 

 
>> 

Ocena 

4; 

     

%zamieniana ocena 

>> 

switch

 

Ocena     

%Wyrażenie 

case

 1 

 

 

 

 

 

 

%Ocena = 1 

disp(

‘niedostateczna’

case

 2 

 

 

 

 

 

 

%Ocena = 2 

disp(

‘mierna’

case

 3 

 

 

 

 

 

 

%Ocena = 3 

disp(

‘dostateczna’

case

 4 

 

 

 

 

 

 

%Ocena = 4 

disp(

‘dobra’

case

 5 

 

 

 

 

 

 

%Ocena = 5 

disp(

‘bardzo dobra’

case

 6 

 

 

 

 

 

 

%Ocena = 6 

disp(

‘celujaca’

end 

dobra       

%wyświetlany wynik 

>> 
 

Po słowach case wymieniane są wartości jakie może przybierać wielkość Ocena. I tak na 

przykład, gdy Ocena równa się 2 zostanie zrealizowana druga instrukcja, która wyświetli napis 
„mierna” itd. Liczby po słowach case nie oznaczają kolejnych numerów tylko możliwe wartości 
wielkości Ocena. 
 

background image

 

- 9 -

Pętle są to podstawowe konstrukcje stosowane w programowaniu, umożliwiają cykliczne 

wykonywanie ciągu instrukcji. Pętla  for jest stosowana w tych przypadkach, w których z góry 
wiadome jest ile razy ma powtórzyć cykl obliczeniowy (iteracje). 
 
Poniżej przedstawiono ogólną postać pętli for: 
 

for

 zmienna = 1:n 

 

 instrukcja 

 instrukcja 
 instrukcja 

 instrukcja 

 

end 

 

Należy pamiętać,  że każda pętla musi kończyć się  słowem  end. Poniżej przedstawiony 

przykład pętli for: 
 
>> A = 0; 
>> 

for

 i = 1:3 

A = A + i; 

end 

>> A 

A = 
 6 

>> 
 

Teraz wytłumaczymy jak działa powyższy zapis. Przed rozpoczęciem działania pętli 

definiujemy początkową wartość  A. Widzimy, że  i przyjmuje wartości: 1, 2 i 3. Może budzić 
wątpliwości równanie: A = A + i. Z punktu widzenia matematyki zapis ten jest prawdziwy (w 
powyższym przypadku) tylko dla i = 0, poza tym jest bez sensu, ale w tym przypadku oznacza 
on, że wartość A w następnym kroku równa się wartości A z poprzedniego kroku powiększonej o i. 
Zapiszmy kolejne etapy obliczania A: 
 
A = 0 

i = 1 

Pierwszy krok = A + i = 0 + 1 = 1 
A = 1 

i = 2 

Drugi krok 

 

= A + i = 1 + 2 = 3 

A = 3 

i = 3 

Trzeci krok   

= A + i = 3 + 3 = 6 

A = 6 
 

MATLAB umożliwia także podgląd poszczególnych etapów działania pętli, ale jest to 

wskazane tylko wtedy, gdy ilość ich jest niezbyt duża. A robimy to opuszczając  średnik po 
równaniu definiującym A: 
 
>> A = 0; 
>> 

for

 i = 1:3 

      

%bez średnika 

end 

A = 
 1 

A = 

background image

 

- 10 -

 3 
A = 

 6 
>> 
 

W niektórych przypadkach można otrzymać podobny efekt jak podczas działania pętli, 

wykorzystując tzw. wektoryzację, czyli użycie dwukropka. Poniżej przedstawiony jest przykład 
takiego działania w odniesieniu do przykładu obliczonego z użyciem pętli for: 
 
>> A = sum(1:3) 
A = 

 6 
>> 
 

Ważne jest, że jeżeli mamy wybór pomiędzy pierwszą a drugą metodą, zawsze powinniśmy 

wybierać tę drugą (wektoryzację), ponieważ ten sposób obliczeń jest wygodniejszy dla MATLAB-a 
i tego rodzaju zadania są wykonywane przez niego znacznie szybciej. 
 

Teraz za pomocą pętli for zdefiniujemy macierz, której elementy będą liczone z zależności 

uwzględniającej współrzędne danego elementu: 
 
>> A = []; 

 

 

 

 

%definiujemy macierz 

>> 

for

 i = 1:3  

 

 

 

%definiujemy ilość wierszy 

for

 j = 1:2 

 

 

 

 

%definiujemy ilość kolumn 

A(i, j) = i + 2*j; 

end 
end 

>> A 
A = 

 3 

 4 

 5 

>> 
 

Każdy element macierzy jest opisany przez numer wiersza i kolumny. W tym przypadku 

wartość poszczególnych elementów odpowiada ich numerom wierszy plus numery kolumn 
pomnożone przez dwa. I tak: 
 
A(i, j) = i + 2 * j 
A(1, 1) = 1 + 2 * 1 = 3 
A(1, 2) = 1 + 2 * 2 = 5 
A(2, 1) = 2 + 2 * 1 = 4 
A(2, 2) = 2 + 2 * 2 = 6 
A(3, 1) = 3 + 2 * 1 = 5 
A(3, 2) = 3 + 2 * 2 = 7 
 

Poprzez usunięcie  średnika przy definicji macierzy A (tak jak to było pokazane  

w poprzednim przypadku) możliwe jest podpatrzenie metody dochodzenia do ostatecznego wyniku 
podczas działania tej procedury: 
 
 
 

background image

 

- 11 -

A = 
 3 

A = 
 3 

A = 
 3 

 4 

A = 

 3 

 4 

A = 

 3 

 4 

 5 

A = 

 3 

 4 

 5 

>> 
 

Można zauważyć,  że podczas rozpoczęcia wypełniania nowych wierszy (A(2, 1), 

A(3, 1)) MATLAB automatycznie dopisuje zera w kolejnych kolumnach (A(2, 2), 
A(3, 2)). Jest to robione po to, żeby w każdym wierszu zgadzała się ilość kolumn. 
 
 

Innym rodzajem funkcji iteracyjnej jest pętla while, która jest stosowana wtedy, gdy ilość 

powtórzeń jest nam nie znana, obliczenia są wykonywane tak długo aż zajdzie dany warunek. 
Ogólna postać tej pętli została przedstawiona poniżej: 
 

while

 wyrażenie logiczne 

 
 instrukcja 

 instrukcja 
 instrukcja 

 instrukcja 
 

end 

 

Pętla ta będzie działać tak długo aż „wyrażenie logiczne” będzie TRUE. Może się zdażyć, że 

pętla będzie nieskończona co oznacza, że nigdy nie pojawi się FALSE i będzie działała  
w nieskończoność. W takich przypadkach dobrze jest przerwać jej działanie klawiszami <Ctrl> + 
<C>. Oto przykład takiej pętli: 
 
>> A = -5; 

 

 

 

%początkowa wartość A 

>> i = 0;  

 

 

 

%wprowadzenie pomocniczej wielkości 

>> 

while

 A < 112 

 

 

%wyrażenie logiczne 

A = A + 2; 

i = i + 1; 

end 

>> 

   

%sprawdzenie ile iteracji zostało wykonanych 

i = 
 59 

>> 

background image

 

- 12 -

Zakładamy,  że ilość iteracji jest nam nieznana. Zadanie rozpoczynamy od wartości -5  

i chcemy stwierdzić ile razy musimy do tej wartości dodać 2, aby nasz wynik był większy od 112. 
W tym przypadku musimy wprowadzić pomocniczą zmienną i, która przy każdej iteracji zwiększa 
się o jeden. 
 
 

5. Skrypty i funkcje 

 

Wszystkie powyżej wymienione instrukcje byłyby mało użyteczne jeżeli za każdym razem 

musielibyśmy je wpisywać w wierszu poleceń. Aby tego uniknąć mogą one być zapisane  
w zewnętrznych plikach tekstowych z rozszerzeniem *.m (M-pliki). Rozróżniamy dwa rodzaje 
plików tekstowych: skrypty i funkcje. W dalszej części czytelnik sam zauważy różnicę pomiędzy 
skryptem a funkcją, należy tylko dodać,  że powinno się zmierzać do tworzenia funkcji. Teraz 
utworzymy pierwszy skrypt, który wykorzysta powyższą procedurę. Aby utworzyć nowy M-plik  
z menu pulpitu wybieramy opcję File/New/M-file. 
 

%Procedura zamienia Ocenę z liczby na wyraz

 

switch

 

Ocena 

      

%Wyrażenie 

3

   case

 1 

 

 

 

 

 

 

%Ocena = 1 

  disp(

‘niedostateczna’

5

   case

 2 

 

 

 

 

 

 

%Ocena = 2 

  disp(

‘mierna’

7

   case

 3 

 

 

 

 

 

 

%Ocena = 3 

  disp(

‘dostateczna’

9

   case

 4 

 

 

 

 

 

 

%Ocena = 4 

10 

  disp(

‘dobra’

11

  

case

 5 

 

 

 

 

 

 

%Ocena = 5 

12 

  disp(

‘bardzo dobra’

13

  

case

 6 

 

 

 

 

 

 

%Ocena = 6 

14 

  disp(

‘celujaca’

15

 end 

 

Jak widzimy każdy wiersz jest numerowany, co jest bardzo pomocne podczas pracy z M-

plikami, oprócz tego dużym ułatwieniem jest zapisywanie procedur z odpowiednimi akapitami. 
Dobrze jest, początek i koniec danej instrukcji umieszczać na tym samym poziomie np. switch  
i end. Nazwijmy ten plik OcenaZamiana. Inną przydatną rzeczą jest krótki opis procedury, który 
będzie przypominał co ona robi. A można go wywołać następująco: 
 
>> help 

OcenaZamiana

 

Procedura zamienia Ocenę z liczby na wyraz 
>> 
 

Istnieje kilka metod pracy z tego rodzaju plikami: można na przykład w wierszu poleceń 

zdefiniować Ocena = 3 a następnie zaznaczyć całą procedurę w M-pliku i wcisnąć przycisk F9. 
Zabieg ten spowoduje, że podświetlona zawartość zostanie skopiowana do wiersza poleceń  
a następnie uruchomiona. Poniżej zostanie wyświetlony wynik jej działania. Można także ją 
uruchomić w sposób pokazany poniżej: 
 
>> Ocena = 3; 
>> OcenaZamiana 

dostateczna 

background image

 

- 13 -

W tym przypadku należy pamiętać, aby ścieżka była ustawiona do folderu, w którym plik 

OcenaZamiana się znajduje. Można ten plik tak zmodyfikować, aby po uruchomieniu sam domagał 
się podania wartości Oceny. W tym celu można wykorzystać funkcję input: 
 

%Procedura zamienia Ocenę z liczby na wyraz 

Ocena = input(

‘Podaj ocene: ‘

); 

switch

 

Ocena 

      

%Wyrażenie 

4

   case

 1 

 

 

 

 

 

 

%Ocena = 1 

  disp(

‘niedostateczna’

6

   case

 2 

 

 

 

 

 

 

%Ocena = 2 

  disp(

‘mierna’

8

   case

 3 

 

 

 

 

 

 

%Ocena = 3 

  disp(

‘dostateczna’

10

  

case

 4 

 

 

 

 

 

 

%Ocena = 4 

11 

  disp(

‘dobra’

12

  

case

 5 

 

 

 

 

 

 

%Ocena = 5 

13 

  disp(

‘bardzo dobra’

14

  

case

 6 

 

 

 

 

 

 

%Ocena = 6 

15 

  disp(

‘celujaca’

16

 end 

 
A teraz prześledźmy jak to działa: 
 
>> 

OcenaZamiana     

%uruchamiamy procedurę 

Podaj 

ocene: 

     

%program domaga się oceny 

dobra       

%wyświetla wynik 

>> 
 

Tym razem przygotujmy M-plik z procedury kontrolującej wiek i zapiszmy go jako 

KontrolaWieku. 
 

Wiek = input(

‘Podaj wiek: ‘

); 

if

 Wiek <= 12   

 

 

 

%warunek 1 

3   disp(

‘dziecko’

4

 elseif

 Wiek <= 18   

 

 

%warunek 2 

5   disp(

‘mlodziez’

6

 

else 

      

%pozostałe przypadki 

7   disp(

‘dorosly’

8

 end 

 

Procedura ta ma jednak kilka niedociągnięć np. jeżeli podamy wiek -4 to wynikiem będzie 

dziecko, jeżeli wpiszemy 2000 – dorosły. Musimy wstawić pewne ograniczenia np. wiek powinien 
się zawierać pomiędzy 0 a 150. W tym celu dodamy nowy warunek: 
 

Wiek = input(

‘Podaj wiek: ‘

); 

if

 Wiek <= 0 | Wiek > 150 

3   disp(

‘Wiek powinien się zawierac pomiedzy 1-150’

elseif

 Wiek <= 12   

 

 

%warunek 1 

5   disp(

‘dziecko’

6

 elseif

 Wiek <= 18   

 

 

%warunek 2 

7   disp(

‘mlodziez’

8

 

else 

      

%pozostałe przypadki 

9   disp(

‘dorosly’

background image

 

- 14 -

10

 end 

 

Teraz utworzymy funkcję, która będzie obliczała silnię. Słowem kluczowym, które 

używamy do definiowania funkcji jest function. Następnie wpisujemy równanie, w którym  
z lewej strony znaku równości jest nazwa określająca wynik a po prawej stronie znajduje się nazwa 
funkcji oraz zmienne, które umieszczone są w nawiasach. Należy pamiętać, że nazwa pliku musi 
być taka sama jak nazwa funkcji. 
 

function

 wynik = silnia(n) 

%funkcja silnia(n)

 

oblicza n!

 

wynik = 1 

for

 n = 1:n 

 

wynik = wynik * n; 

end 

 
Dla przykładu policzmy wartość silni dla 5: 
 
>> silnia(5) 

ans = 
 120 

>> 
 

Możemy to także sprawdzić wykorzystując funkcję liczącą silnię, którą posiada MATLAB: 

 
>> factorial(5) 

ans = 
 120 

>> 
 
 

Stworzymy teraz funkcję w skład której będzie wchodziła pętla  for jak również funkcja 

pobierająca dane od użytkownika – input. Jej zadaniem będzie tworzenie macierzy: 
 

function

 A = macierz(a, b) 

%funkcja macierz(a, b) tworzy macierz o a-wierszach 

3

 

% i b-kolumnach 

for

 i = 1:a 

5  

for

 j = 1:b 

 

 

A(i,j) = input(‘Podaj element macierzy: ‘); 

7  

end

 

end

 

 
 

Pierwsza pętla  for jest odpowiedzialna za zmianę numeru wiersza, natomiast druga za 

kolumny. Zobaczmy jak wygląda działanie w praktyce tej funkcji: 
 
 
>> 

macierz(2,3)      

%2 wiersze, 3 kolumny 

Podaj element macierzy: 1 

 

 

 

%wpisujemy liczby 

Podaj element macierzy: 2 

Podaj element macierzy: 3 
Podaj element macierzy: 4 

background image

 

- 15 -

Podaj element macierzy: 5 
Podaj element macierzy: 6 

ans = 
  1 2 3 

  4 5 6 
>> 
 
 

Instrukcje oraz operatory przedstawione powyżej stanowią niezbędny element prawie 

każdego algorytmu i programu. Z tego też względu należy zwrócić uwagę na poprawne ich 
opanowane. Więcej przykładów można znaleźć w literaturze przedstawionej poniżej. 
 
 
 
 
 

6. Literatura 

 
1. 

http://www.mathworks.com 

2. 

Kuncicky D. C. MATLAB programming, Person Education, Inc, 2004, 

3. 

Mrozek B., Mrozek Z. MATLAB i Simulink – Poradnik użytkownika, Helion, Warszawa, 2004, 

4. 

Zalewski A., Cegieła R. MATLAB – obliczenia numeryczne i ich zastosowanie, Wydawnictwo 
Nakom, Poznań, 1996,