1. Tworzenie skryptów
Skrypt Matlaba jest to plik tekstowy posiadający rozszerzenie *.m (M – plik), zawierający komendy
Matlaba. Skrypt uruchamia się wpisując jego nazwę (bez kropki i rozszerzenia) w linii poleceń (i
naciskając Enter).
Skrypty tworzymy używając wbudowanego edytora programu Matlab. Edytor uruchamiamy wpisując
polecenie edit w linii poleceń, lub wskazując myszą (przy aktywnym oknie Current directory) menu
File | New | M-File
Spowoduje to otwarcie pustego okna edytora. W oknie tym wpisujemy kolejne komendy Matlaba. Po
uruchomieniu skryptu wszystkie zawarte w nim polecenia zostaną kolejno wykonane.
Skrypt zapisujemy wskazując myszą menu File | Save As. Spowoduje to otwarcie okna
umożliwiającego wybór katalogu, w którym zapiszemy skrypt oraz podanie nazwy skryptu.
(Rozszerzenie *.m zostanie automatycznie dopisane przez Matlaba).
Po zapisaniu plik skryptu będzie widoczny w oknie Current directory.
Skrypty w czasie pracy korzystają ze zmiennych istniejących w przestrzeni roboczej Matlaba
(workspace). Również zmienne utworzone w czasie wykonywania skryptu widoczne są w oknie
Workspace.
2. Wybrane polecenia używane w skryptach
W skryptach używamy poleceń Matlaba w sposób identyczny jak w oknie poleceń. Istnieją jednak
polecenia używane przeważnie w skryptach.
%
-
komentarz
input
-
umożliwia wprowadzanie danych w czasie działania skryptu.
Składnia:
1.
A=input('Tekst zachęty: ')
Umożliwia wprowadzenie danych liczbowych i przypisanie ich do zmiennej A
2.
B=input('Tekst zachęty: ','s')
Umożliwia wprowadzenie danych tekstowych i przypisanie ich do zmiennej B
Przykład 1
>> A=input('Podaj liczbę: ')
-----------------------------
Podaj liczbę: 10
%Matlab wyswietlił tekst podany w nawiasie i czeka aż
%wprowadzimy liczbę i naciśniemy Enter. Podana przez
%nas liczba zostanie przypisana do zmiennej A
A =
10
Przykład 2
>> B=input('Podaj tekst: ','s')
-----------------------------
Podaj tekst: kura
%Matlab wyswietlił tekst podany w nawiasie i czeka aż
%wprowadzimy teksti naciśniemy Enter. Podany przez
%nas tekst zostanie przypisany do zmiennej B
B =
kura
disp
-
wyświetla zawartość zmiennych lub tekstów użytych
jako argument
Składnia:
disp(argument)
Przykład:
>> disp('Dzień dobry')
-----------------------
Dzień dobry
>> disp(1+2)
-----------------------
3
Instrukcja if – else
-instrukcja warunkowa. Umożliwia wykonanie dwóch
różnych zestawów poleceń w zależności od spełnienia (bądź
nie) warunku logicznego.
Składnia:
if(warunek)
polecenie1
else
polecenie2
end
Jeżeli wartość logiczna warunku = PRAWDA, wykonane zostaną wszystkie polecenia aż do słowa
kluczowego else (u nas: polecenie1). W przeciwnym wypadku zostaną wykonane polecenia od
słowa else aż do instrukcji end (u nas: polecenie2).
UWAGA
Instrukcja if może występować w formie skróconej (bez klauzuli else):
if(warunek)
polecenie1
end
Wówczas spełnienie warunku logicznego (wartość logiczna: PRAWDA) powoduje wykonanie wszystkich
poleceń aż do słowa end (u nas: polecenie1). W przeciwnym wypadku nie zostanie podjęte żadne
działanie.
Przykład 1
a=10;
if
(a<5)
disp(
'A jest mniejsze od 5'
);
else
disp(
'A jest nie mniejsze od 5'
);
end
--------------------------------------------
A jest nie mniejsze od 5
Proszę zastąpić w powyższym skrypcie instrukcję a=10 instrukcją a=input('Podaj liczbe:') i wypróbować
działanie instrukcji if – else dla różnych wartości zmiennej a.
Przykład 2
OK=
'QQ'
;
if
(~(OK==
't'
))
disp(
'KONIEC'
);
end
--------------------------------------------
KONIEC
Proszę zwrócić uwagę na negację zawartą w warunku: nieprawda, że OK jest równe 't'.
Pętla for
-
(pętla wyliczana, pętla iteracyjna) umożliwia wykonanie
polecenia lub grupy poleceń określoną ilość razy (iteracji).
Składnia:
a.)
for
i1=1:10
x1(i1)=i1;
end
disp(
'x1='
),disp(x1);
------------------------------------------------------------
x1=
1 2 3 4 5 6 7 8 9 10
W powyższym przykładzie dla każdej wartości zmiennej i1 sterującej pętlą na odpowiedniej pozycji
wektora x1 zapisywana jest wartość zmiennej i1. W wyniku działania pętli otrzymaliśmy zatem wektor
x1 zawierający liczby od 1 do 10. Ponieważ kolejne wartości zmiennej i1 zmieniały się o 1, użyliśmy
składni i1=1:10, deklarując jedynie początek (i1=1) i koniec (i1=10) dozwolonego zakresu liczb,
pomijając zaś krok, czyli wartość, o jaką zmienia się zmienna i1 w kolejnych iteracjach.
b.)
for
i2=1:2:9
x2(i2)=i2;
end
disp(
'x2='
),disp(x2);
------------------------------------------------------
x2=
1 0 3 0 5 0 7 0 9
Zmienna i2 sterująca pętlą w przykładzie b.) zmienia się o 2 w każdej kolejnej iteracji. Użyliśmy zatem
składni i2=1:2:9, deklarując początek (i2=1), krok (2) i koniec (i2=9) dozwolonego zakresu liczb.
Należy zauważyć, że otrzymany wektor x2 zawiera kolejne wartości i2 na pozycjach 1, 3, 5, 7, 9.
Elementy wektora x2 o indeksach 2, 4, 6, 8 (zmienna x2 nie przyjęła takich wartości) są równe zero.