Materiały do Laboratorium Informatyki Rok akademicki: 2008/09
Semestr: letni
MATLAB cz. 2
Podstawowe funkcje umożliwiające wprowadzanie danych przez użytkownika i
wypisywanie danych na ekran.
disp('Podaj wymiary macierzy') wyświetla komentarz na ekranie
disp(A) wyświetla zmienną A na ekranie
n=input('Podaj ilość wierszy macierzy A: '); czyta macierz z klawiatury
macierz należy wprowadzać łącznie z nawiasami kwadratowymi,
np. [ 1 2 ; 3 4]
.
W celu wypisania wartości na ekran nie zawsze jest jednak konieczne użycie instrukcji disp.
Można posłużyć się samą nazwą zmiennej, tj. wpisując po znaku zachęty nazwę zmiennej i
naciskając Enter:
>> A
Na ekranie wyświetlana jest nazwa zmiennej oraz jej wartość (o ile zmienna taka istnieje):
A =
1
Jeżeli zmienna nie istnieje, wówczas wypisywany jest stosowny komunikat:
??? Undefined function or variable 'B'.
Wypisanie wartości zmiennej na ekran możliwe jest również od razu po obliczeniu jej
wartości. W tym celu nie należy kończyć wiersza średnikiem. Przykład:
>> A=exp(1)
A =
2.7183
Pętle
MATLAB w większości operacji macierzowych nie wymaga zastosowania pętli. Nie zaleca
się więc używania pętli w sytuacjach, gdy możliwe jest wykonanie danej operacji przy użyciu
instrukcji i operatorów operujących na wektorach bądz macierzach (patrz poprzednie
ćwiczenie). W wielu sytuacjach jednak konieczne okazuje się albo zaprogramowanie np.
złożonych obliczeń iteracyjnych, bądz innych obliczeń nie dających się zapisać wyłącznie za
pomocą takich operatorów bądz funkcji. W takich przypadkach konieczne jest posłużenie się
pętlami. MATLAB oferuje następujące, doskonale znane z poprzedniego semestru
Informatyki, pętle:
" For
" While
Opracowali: dr inż. Witold Nocoń, dr inż. Krzysztof Stebel
Materiały do Laboratorium Informatyki Rok akademicki: 2008/09
Semestr: letni
Najprostsze użycie pętli for przedstawia się następująco:
for i=1:n,
instrukcje
end
Instrukcje zawarte pomiędzy przecinkiem a słowem end wykonywane będą dla wartości
zmiennej i od 1 do n. Przykład:
for i=1:3,
disp(i)
end
Wykonanie powyższego skryptu spowoduje wykonanie instrukcji wypisania wartości na
ekran. Jako że zmienna i przyjmuje kolejne wartości całkowite od 1 do 3 (a więc 1 2 3), to
efekt wykonania takiego skryptu będzie następujący (funkcja disp nie wypisuje nazwy
zmiennej):
1
2
3
>>
Jeżeli indeks pętli ma się zmieniać o wartość inną niż 1, wówczas należy pętlę zapisać w
następujący sposób
for i=1:krok:n,
instrukcje
end
Przykład:
for i=1:0.5:3,
disp(i);
end
Wynik:
1
1.5000
2
2.5000
3
>>
Opracowali: dr inż. Witold Nocoń, dr inż. Krzysztof Stebel
Materiały do Laboratorium Informatyki Rok akademicki: 2008/09
Semestr: letni
Pętle mogą być oczywiście zagnieżdżone, tzn. w ramach instrukcji pętli zewnętrznej, mogą
się znalezć kolejne pętle. Przykład:
for i=1:2
for j=1:2
i+j
end
end
W takim przypadku wynik działania jest następujący:
ans =
2
ans =
3
ans =
3
ans =
4
Pętla while posiana następującą ogólną postać:
while warunek
instrukcje
end
Warunek zapisywany jest przy użyciu wybranego operatora porównania:
Operatory porównania:
== < > <= >= ~=
Przykład:
i=0;
while i<5
i % wypisanie wartości i na ekran
i=i+1; % zwiększenie wartości i o jeden
end
co spowoduje wypisanie na ekran liczb od 0 do 4.
Opracowali: dr inż. Witold Nocoń, dr inż. Krzysztof Stebel
Materiały do Laboratorium Informatyki Rok akademicki: 2008/09
Semestr: letni
Instrukcje warunkowe
Postać ogólna instrukcji if:
IF warunek
instrukcje
ELSEIF warunek
instrukcje
ELSE
instrukcje
END
Przykłady:
Używanie składowych ELSEIF oraz ELSE jest opcjonalne. W najprostszym przypadku
instrukcja warunkowa może zostać użyta w następujący sposób:
a=input('Podaj wartosc a = ');
b=input('Podaj wartosc b = ');
if a>b
disp('A jest wieksze od B!');
end
Jeżeli użytkownik wprowadzi wartość a większą od wartości b, wtedy na ekranie wypisany
zostanie stosowny komunikat. W przeciwnym wypadku żaden komunikat nie zostanie
wypisany.
Jeżeli chcemy zaprogramować wykonanie się dwóch różnych instrukcji w zależności od
spełniania lub niespełnienia warunku, wtedy do instrukcji warunkowej należy dodać składową
ELSE:
if a>b
disp('A jest wieksze od B!');
else
disp('A jest mniejsze lub równe B!');
end
Na ekranie zawsze pojawi się tylko jeden z przykładowych komunikatów (w zależności od
spełnienia lub niespełnienia warunku).
Użycie składowej ELSEIF może wyglądać następująco:
if a>b
disp('A jest wieksze od B!');
elseif a==b
disp('A posiada taką samą wartość jak B');
else
disp('A jest mniejsze od B!');
end
Opracowali: dr inż. Witold Nocoń, dr inż. Krzysztof Stebel
Materiały do Laboratorium Informatyki Rok akademicki: 2008/09
Semestr: letni
W tym przypadku rozróżniane są już trzy przypadki. Jeżeli a>b wtedy wypisywany jest
pierwszy komunikat i program kończy wykonywanie instrukcji warunkowej program
przechodzi do słówka end . Jeżeli warunek nie jest spełniony (czyli a nie jest większe od b),
wtedy program przechodzi do elseif i sprawdza kolejny warunek. Jeżeli a jest równe b
wtedy wypisywany jest drugi komunikat. Jeżeli tak nie jest (czyli a nie jest równe b), wtedy
program przechodzi do słówka else i wypisuje komunikat ostatni.
Uwaga: należy zwrócić uwagę na użycie operatora sprawdzenia równości == . Użycie w
tym miejscu operatora przypisania = będzie błędem, gdyż wartości a i b nie zostaną
porównane. Zamiast tego, zmiennej a przypisana zostanie wartość zmiennej b , a nie o to
tutaj chodzi.
Instrukcje warunkowe i pętle mogę być bez ograniczeń zagnieżdżane, tzn. przykładowo,
pomiędzy słówkiem else a słówkiem end można wstawić kolejną instrukcję warunkową
i/lub pętle. Należy jedynie zwrócić uwagę na prawidłowe zagnieżdżanie.
Podpowiedz: w celu prawidłowego napisania i/lub zagnieżdżania pętli i instrukcji
warunkowych, należy w pierwszej kolejności napisać sobie strukturę instrukcji, np.:
if a>b
else
end
a dopiero potem wypełnić ją konkretnymi instrukcjami, czyli np.:
if a>b
disp('A jest wieksze od B!');
else
disp('A nie jest mniejsze od B!');
end
Oczywiście ma to tylko znaczenie podczas pisania, ale pozwala nie zapominać o
wymaganych składowych instrukcji (np. o koniecznym słówku end na końcu tej instrukcji).
Ważne jest też, żeby instrukcje wewnątrz instrukcji warunkowych oraz pętli były wpisywane
z wcięciem, tak jak w przytoczonym przykładzie. Tak napisany kod staje się o wiele bardziej
czytelny szczególnie dla prowadzącego który sprawdza zadania podczas kolokwium :&.
Studenci proszeni są o samodzielne sprawdzenie jak działa instrukcja wielokrotnego wyboru
SWITCH.
Opracowali: dr inż. Witold Nocoń, dr inż. Krzysztof Stebel
Wyszukiwarka
Podobne podstrony:
Tutorial MATLAB 3
Tutorial MATLAB
Tutorial MATLAB
Tutorial MATLAB 1
Tutorial MATLAB
Tutorial MATLAB 2
Tutorial MATLAB
Tutorial MATLAB
Tutorial MATLAB
Tutorial MATLAB
Artificial Neural Networks The Tutorial With MATLAB
matlab tutorium1
Matlab Polski tutorial
matlab tutorium2
Matlab tutorial GUI
MATLAB cw Skrypty
SIMULINK MATLAB to VHDL Route
więcej podobnych podstron