Laboratorium Cyfrowego Przetwarzania Obrazów

Transkrypt

Laboratorium Cyfrowego Przetwarzania Obrazów
Laboratorium
Cyfrowego Przetwarzania Obrazów
Ćwiczenie 1
„Wprowadzenie do MATLAB'a”
Opracowali:
-
dr inż. Beata Leśniak-Plewińska
-
dr inż. Jakub Żmigrodzki
Zakład Inżynierii Biomedycznej,
Instytut Metrologii i Inżynierii Biomedycznej,
Wydział Mechatroniki Politechniki Warszawskiej.
Warszawa, 2011
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
1. Cel ćwiczenia.
W ramach ćwiczenia studenci zapoznają się z obsługą pakietu MATLAB w zakresie niezbędnym dla
potrzeb laboratorium CPOB. We wprowadzeniu do ćwiczenia opisano podstawowe polecenia
środowiska, funkcje matematyczne oraz graficzne na przykładzie prostych obliczeń wykonywanych z
poziomu konsoli (linii poleceń).
2. Wymagane wiadomości.
Informacje zawarte w:
1. p. 3 niniejszej instrukcji,
2. wideo-demonstracji Wprowadzenie_do_MATLABa zamieszczonej wraz z niniejsza instrukcją
na stronie: zib.mchtr.pw.edu.pl.
3. Wprowadzenie.
Pakiet MATLAB jest środowiskiem obliczeniowym umożliwiającym przeprowadzanie złożonych
obliczeń naukowych i inżynierskich oraz wizualizację ich wyników oraz zbiorów danych. Ważną
cechą pakietu są specjalne biblioteki funkcji zwane przybornikami (ang. Toolboxes), których
zastosowanie znacznie upraszcza i przyspiesza tworzenie własnych rozwiązań.
Obraz cyfrowy to zbiór geometrycznie uporządkowanych wartości, które w ogólnym przypadku mogą
się zmieniać w czasie (Równ. 1):
I =F  x , y , z , t
(1)
Obraz wczytany/załadowany do przestrzeni roboczej MATLAB'a jest reprezentowany przez macierz.
Wartości elementów macierzy zalezą od typu obrazu i formatu jego zapisu. Rys. 1 przedstawia obraz
monochromatyczny (zapisany w formacie bmp) i fragment reprezentującej go macierzy – macierzy o
wartościach z przedziału [0,255], co odpowiada 256 poziomom intensywności (szarości) w
reprezentowanym obrazie.
31
41
44
41
52
91
136
112
106
125
131
34
41
46
46
66
114
138
113
106
135
153
42
44
50
57
98
138
129
108
118
163
163
48
34
53
82
125
126
124
121
148
189
110
40
44
66
116
125
117
124
134
170
150
81
45
76
97
120
115
103
118
149
178
98
53
77
103
115
99
107
104
123
166
148
59
41
Rysunek 1. Obraz i reprezentująca go macierz.
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
2/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
3.1 Macierz
Podstawowym typem danych MATLAB'a jest macierz. Macierz definiuje się jako funkcję
przyporządkowująca parze indeksów (i,j) wartość liczbową a i,j (Równ. 2). Obrazowo macierz można
sobie wyobrazić jako prostokątna tablice liczb.
[
a 11 a 12
A= a 21 a 22
⋮
⋮
a m1 a m2
⋯ a 1n
⋯ a 21
⋯ ⋮
⋯ a mn
]
(2)
Szczególnymi przypadkami macierzy są: wektor i skalar (S). Jeżeli wektor składa się z jednego
wiersza, nazywany jest wektorem wierszowym (V w), natomiast jeśli posiada jedną kolumnę –
wektorem kolumnowym (Vk) (Równ. 3).
V w =[ a 11 a 12
[]
a 11
⋯ a1n ] ,V k = a 12 , S =[ a 11 ]
⋮
a 1n
(3)
3.2 Tworzenie macierzy
W MATLAB'ie istnieje wiele sposobów tworzenia macierzy. Macierze tworzy się m.in.:
•
poprzez wyliczanie elementów,
•
poprzez zastosowanie funkcji generujących,
•
z innych macierzy.
Aby utworzyć wektor przez wyliczanie, elementy wektora należy umieścić wewnątrz nawiasów
kwadratowych, np:
a = [1 2 3 4 5]
Utworzony wektor jest wektorem wierszowym – jego elementy zostały rozdzielone spacjami. Tworząc
wektor wierszowy elementy wektora można również rozdzielić przecinkami.
Polecenie:
b = 1:1:5
tworzy za pomocą operatora dwukropka wektor wierszowy (identyczny jak wektor a), którego
elementy maja wartości z przedziału od min=1 do max=5 zmieniające się z krokiem=1.
Polecenie:
c = [1; 2; 3; 4; 5]
tworzy natomiast wektor kolumnowy – jego elementy zostały rozdzielone średnikami. Wektor
wierszowy można przekształcić w kolumnowy za pomocą operatora transpozycji ” ' ” (np. c=a').
Wykorzystując dwa powyższe sposoby rozdzielania elementów można utworzyć macierz:
m = [1 2 3; 4 5 6; 7 8 9; 10 11 12],
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
3/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
która ilustruje wzór (4).
[ ]
1 2 3
m= 4 5 6
7 8 9
10 11 12
(4)
Do tworzenia macierzy i wektorów w MATLAB'ie można również wykorzystać wiele wbudowanych
funkcji, t.j.:
eye(M,N)
ones(M,N)
zeros(M,N)
rand(M,N)
-
randn(M,N)
-
linspace(a,b,n) logspace(a,b,n) -
macierz jednostkową M x N
macierz M x N o elementach równych 1
macierz M x N o elementach równych 0
macierz M x N wypełniona liczbami pseudolosowymi z przedziału <0,1>
o rozkładzie jednorodnym
macierz M x N wypełniona liczbami pseudolosowymi z przedziału <0,1>
o rozkładzie normalnym (z wartością średnią 0 i wariancją 1)
wektor o n wartościach rozłożonych równomiernie pomiędzy a i b
włącznie z wartościami a i b
wektor o n wartościach rozłożonych logarytmicznie pomiędzy a i b
włącznie z wartościami a i b
Kolejnym sposobem tworzenia macierzy jest wykorzystanie macierzy już istniejących w przestrzeni
roboczej MATLAB'a (ang. Workspace). Ten sposób został dokładniej wyjaśniony w części praktycznej
ćwiczenia.
3.3 Indeksowanie macierzy
Operacje na macierzach wymagają dostępu do ich elementów. Dostęp ten uzyskuje się poprzez
indeksy, stanowiące numer wiersza i/lub kolumny umieszczone wewnątrz nawiasów okrągłych.
Np. aby uzyskać dostęp do elementu leżącego na przecięciu trzeciego wiersza i drugiej kolumny
macierzy m opisanej wzorem (4) należy użyć polecenia:
m(2,3)
Można również odwoływać się do większych fragmentów macierzy. Umożliwia to operator
dwukropka. Jeśli potrzebne są dane zawarte np. w drugiej kolumnie macierzy m (wzór 4), wówczas
można je uzyskać za pomocą polecenia:
m(:,2)
Dwukropek oznacza w tym przypadku wszystkie wiersze, natomiast liczba 2 oznacza, że są to elementy
z drugiej kolumny.
3.4 Operacje macierzowe i tablicowe oraz funkcje wspomagające
przetwarzanie macierzy.
Podstawowymi operatorami arytmetycznymi w MATLAB'ie są: ”+”, ”-”, ”*” i ”/”. W przypadku, gdy
argumentami operacji są macierze, operatory te wykonują działania macierzowe (np. operator ”*”
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
4/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
umożliwia mnożenie macierzy w sensie Cauchy'ego). Aby dokonać operacji mnożenia i dzielenia na
odpowiadających sobie pojedynczych elementach argumentów macierzowych wymienione operatory:
”*” i ”/” należy poprzedzić kropką: ”.*” i ”./” (operatory takie nazywamy tablicowymi).
Wybrane funkcje wspomagające przetwarzanie macierzy zostały bliżej przedstawione w części
praktycznej ćwiczenia.
3.5 Operacje logiczne.
Jedną z klas zmiennych MATLAB'a jest klasa logical (logiczna). Operatory porównania : ”<”, ”<=”,
”>”, ”>=”, ”==”, i ”~=” umożliwiają konstrukcję wyrażeń logicznych, których wynikiem jest
”prawda” lub ”fałsz”. Wyrażeń logicznych używa się najczęściej w instrukcjach sterujących.
W MATLAB'ie istnieją ponadto trzy podstawowe rodzaje operatorów logicznych: ”|”, ”&”, ”~”
operujące na elementach macierzy oraz warunkowe operatory logiczne (ang. short-circuit) operujące
na wyrażeniach skalarnych (”&&”, ”||”). Umożliwiają one podjęcie decyzji o wartości wyrażenia
logicznego na podstawie jedynie pierwszego operandu (argumentu operatora) - o ile jest to możliwe.
3.6
Instrukcje sterujące
Instrukcje sterujące w MATLAB'ie można podzielić na:
•
instrukcje warunkowe,
•
pętle,
•
instrukcje obsługi błędów.
W ćwiczeniu studenci zostaną zapoznani jedynie z przykładami dwóch pierwszych typów instrukcji
warunkowych.
Instrukcje warunkowe pozwalają na wybranie bloku instrukcji, który zostanie wykonany.
Instrukcja if oblicza wartości wyrażenia logicznego i w zależności od uzyskanego wyniku wykonuje
właściwa grupę instrukcji. Najprostsza składnia instrukcji if wygląda następująco:
if wyrażenie_logiczne
blok instrukcji
end
Jeżeli wartość wyrażenia logicznego jest prawda wówczas wykonywany jest blok instrukcji pomiędzy
if i end. Dodatkowe warunkowanie wykonania instrukcji if uzyskujemy dzięki wyrażeniom else
i elseif:
if wyrażenie_logiczne_if
blok instrukcji_if
else
blok instrukcji_else
end
if wyrażenie_logiczne_if
blok instrukcji_if
elseif wyrażenie_logiczne_elseif
blok instrukcji_elseif
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
5/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
else
blok instrukcji_else
end
Wyrażenie else nie posiada warunku logicznego, a związany z nim blok instrukcji jest wykonywany
jeśli wyrażenie logiczne poprzedzające else (dla if lub elseif) nie jest spełnione. Wyrażenie
elseif posiada warunek logiczny, którego wartość jest wyznaczana jeśli poprzedzający warunek if
nie jest spełniony.
Za pomocą pętli możliwe jest powtarzalne wykonywanie bloków instrukcji. Jedno powtórzenie
nazywamy iteracją. Jeśli znana jest liczba iteracji wykorzystuje się pętlę for. Pętla for ma
następującą składnię:
for index=start:krok:koniec
blok instrukcji
end
Domyślną wartością kroku jest 1 (jeśli krok ma wynosić 1 to można go pominąć).
3.7 Podstawowe operacje graficzne
Okna graficzne
Okno graficzne (ang. figure) jest oknem MATLAB'a, w którym umieszczane są elementy graficzne
(wykresy i ilustracje). Okno graficzne jest tworzone bezpośrednio przez wywołanie funkcji figure
lub powstaje automatycznie w wyniku wywołania funkcji graficznej, o ile żadne okno graficzne nie
zostało utworzone wcześniej. Jeśli istnieje okno graficzne MATLAB wykorzystuje je do stworzenia
nowego wykresu/ilustracji. Jeśli istnieje wiele okien graficznych – wyjście bieżącej operacji graficznej
przekazywane jest do okna aktywnego. Aby wybrać właściwe okno należy wskazać i otworzyć je przy
pomocy myszy lub wykonać polecenie figure(n), gdzie n – numer okna (widoczny na pasku
tytułowym okna graficznego).
W tym samym oknie graficznym można wyświetlić wiele wykresów za pomocą funkcji subplot.
Polecenie subplot(m.n.p) tworzy okno graficzne (o ile nie jest otwarte żadne okno graficzne)
podzielone na m wierszy i n kolumn i wybiera p-ty element tak utworzonej siatki, a jeśli istnieje
otwarte okno dokonuje analogicznych operacji w ramach aktywnego okna. Każdy obszar utworzony
za pomocą funkcji subplot posiada własny układ współrzędnych, którego właściwości mogą być
indywidualnie dopasowywane (np. osie skalowane poleceniem axis lub opisywane poleceniami
xlabel czy ylabel).
Podstawowe polecenia do tworzenia wykresów i ilustracji
MATLAB udostępnia wiele różnych funkcji do tworzenia wykresów liniowych. Wybrane polecenia
tworzące wykresy liniowe 2D zebrano w Tabeli 1.
Funkcja plot
Funkcja plot umożliwia tworzenie wykresów liniowych z liniowa skala na obu osiach. Funkcja
plot może być wywoływana z różną liczbą argumentów wejściowych. Warianty wywołania funkcji
plot zebrano w Tabeli 2.
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
6/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Opcje stylu pozwalają na zdefiniowanie koloru i rodzaju linii oraz znaczników (markerów) punktów.
Zestawienie tych parametrów przedstawiono w Tabeli 3.
Tab. 1 Podstawowe funkcje do tworzenia wykresów liniowych 2D
Funkcja
Opis
plot
Wykres danych z liniowa skalą na obu osiach
loglog
Wykres danych z logarytmiczną skalą na obu osiach
semilogx
Wykres danych z logarytmiczną skalą na osi x i liniową na osi y
semilogy
Wykres danych z liniową skalą na osi x i logarytmiczną na osi y
plotyy
Wykres danych z dwoma różnymi liniowymi skalami osi y po lewej i prawej
stronie
Tab. 2 Warianty wywołania funkcji plot
plot(y)
pojedynczy wykres (y - wektor), x domyślne (indeks
elementy w wektorze y: [1,2,3, … length(y)]), opcje
stylu domyślne
plot(x,y)
pojedynczy wykres (y – wektor), opcje stylu domyślne
plot(x,y,’opcje stylu’)
pojedynczy wykres (y-wektor) ze określeniem opcji
stylu
plot(x1,y1,x2,y2)
dwa wykres wektorów y1, y2 ze określeniem i
wektorów dla osi x (x1, x2), opcje stylu domyślne
plot(x,[y1; y2])
dwa wykres wektorów y1, y2 będących kolumnami
macierzy ([ ]), wspólny wektory dla osi x, opcje stylu
domyślne
plot(x1,y1,’os1’,x2,y2,’os2’)
dwa wykres wektorów y1, y2 z określeniem opcji stylu
i wektorów dla osi x (x1, x2)
Tab. 3 Opcje stylu
Opcje koloru
Opcje rodzaju linii
Opcje rodzaju oznaczenia punktów
+
symbol plusa
o
kółko
*
gwiazdka *
y żółty
m purpurowy
-
c zielononiebieski
-- linia przerywana
x
znak x
r czerwony
:
linia kropkowana
.
kropka
g zielony
-. linia typu kreska-kropka
s
kwadra/t
b niebieski
d
romb ¸
w biały
v/^/>/< trójkąt s/r/w/v
k czarny
p
gwiazdka pięciokątna
h
gwiazdka sześciokątna
linia ciągła
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
7/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Style tworzą atrybuty koloru, rodzaju linii oraz znacznika osobno lub w połączaniu, np.:
plot(x,y,'r');
plot(x,y,'+')
plot(x,y,'b--');
W przypadku kilku wykresów tworzonych jednym wywołaniem polecenia plot z pominięciem
parametru określającego typ linii (opcji stylu) kolory linii wykresów dobierane są automatycznie.
Wykresy nakładane
MATLAB oferuje możliwość tworzenia wykresów nakładanych. Służy do tego np. polecenie hold.
Polecenie to jest przydatne w sytuacji gdy nie wszystkie dane są dostępne od razu w momencie
tworzenia wykresu. Wywołanie polecenia hold lub hold on w dowolnym momencie sesji
MATLAB'a powoduje ”zamrożenie” bieżącego wykresy w aktywnym oknie graficznym. Następne
wykresy, generowane poleceniem plot, są wówczas dodawane do bieżącego wykresu. ”Odmrożenie”
wykresu następuje po kolejnym wywołaniu polecenia hold lub polecenia hold off. Polecenie
ishold zwraca 1/0 dla stanu on/off polecenia hold.
Podstawowe polecenia do tworzenia opisów wykresów i ilustracji
Opisywanie wykresów za pomocą łańcuchów znakowych i elementów objaśniających poprawia
czytelność i ułatwia interpretację zilustrowanych danych. Program MATLAB umożliwia m.in.:
•
dodawanie opisów osi i tytułów,
•
dodawanie legendy,
•
dodawanie siatki współrzędnych,
•
dodawanie do wykresów elementów opisujących.
Zestaw wybranych funkcji pozwalających na tworzenie opisów i modyfikowanie wykresów zebrano w
Tabeli 4.
Tab. 4 Podstawowe funkcje do tworzenia opisów i modyfikowania wykresów.
Funkcja
Opis
tilte('łańcuch')
tytuł wykresu
xlabel('lancuch')
etykieta osi x
ylabel('lancuch')
etykieta osi x
axis[xmin,xmax,ymin,ymax]
ustawia widoczny zakres osi x wykresu od xmin do xmax, a
osi y od ymin do ymax
grid on/off
aktywacja/deaktywacja siatki współrzędnych na wykresie
legend
legenda do wykresu
Podstawowe polecenia do modyfikacji właściwości układu współrzędnych
Podczas tworzenia wykresu/ilustracji MATLAB automatycznie dobiera granice osi współrzędnych.
Często zachodzi jednak potrzeba zmiany tej skali. Aby ustawić własne zakresy osi układu
współrzędnych należy użyć polecenia:
axis([xmin xmax ymin ymax])
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
8/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Proces konstruowania wykresu
Proces konstruowania wykresu przebiega w trzech etapach:
(1) przygotowanie danych
x = 0:0.1:2*pi;
y1 = cos(x);
y2 = sin(x);
y3 = sin(x) + cos(x);
y4 = sin(x).*cos(x);
(2) ewentualny wybór okna graficznego oraz pozycji obszaru wykresu
figure(1)
subplot(2,2,1)
(3) wywołanie funkcji służącej do generacji wykresu
plot(x,y1,'-r',x,y2,':b',x,y3,'--g',x,y4,'.-k')
(4) ewentualne ustawienie zakresów osi oraz włącznie siatki
axis([0 max(x) -1.5 1.5])
grid on
(5) tworzenie opisów
xlabel('Kat [rad]');
ylabel('Amplituda');
title('Funkcje trygonometryczne');
legend('sin(x)','cos(x)','sin(x) + cos(x)','sin(x)cos(x)');
Tworzenie ilustracji obrazów
Aby wczytać obraz do przestrzeni roboczej MATLAB należy użyć polecenia imread:
X = imread('nazwa_pliku_graficznego');
gdzie X jest macierzą reprezentująca obraz w przestrzeni roboczej MATLAB'a
MATLAB oferuje kilka funkcji pozwalających na utworzenie graficznej reprezentacji danych 2D. Do
ilustracji obrazów służy m.in. funkcja imshow. Najprostsze wywołanie funkcji imshow
przedstawiono poniżej:
imshow(X)
gdzie X jest zmienną zawierająca obraz.
Polecenie imshow(X, [min max]) tworzy ilustrację obrazu X w skali szarości z określeniem
zakresu wyświetlanych wartości obrazu X: wartości obrazu X mniejsze i równe min są wyświetlane w
kolorze czarnym, natomiast wartości równe lub większe od max są wyświetlane w kolorze białym,
wartości z przedziału [min max] są wyświetlane w odcieniach szarości.
Polecenie imshow(X, []) tworzy ilustracja obrazu X w skali szarości, przy czym wartość min(X)
jest wyświetlana w kolorze czarnym, max(X) w kolorze biały, a wartości z przedziału
[min(X):max(X)] w odcieniach szarości.
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
9/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Aby uzyskać informacje o wartości danego piksela należy po otwarciu okna graficznego z ilustracja
obrazu (imshow) wywołać polecenie impixelinfo. Wartość i współrzędne piksela wskazywanego
przez kursor będą wówczas wyświetlane w lewym dolnym rogu okna graficznego.
Jeśli informacje te mają być zapisane w przestrzeni roboczej należy wskazać wybrany element obrazu
i przycisnąć prawy przycisk myszy a następnie wybrać opcję Copy pixel info. Współrzędne piksela i
jego wartość są wówczas kopiowane do schowka i mogą zostać zapisane do zmiennej w oknie
poleceń.
Pobrany obraz można zwizualizować poleceniem: imshow(im).
Dla okna graficznego prezentującego obraz można również stosować wymienione wyżej funkcje
opisujące tj.: title, xlabel, ylabel oraz subplot.
Ewentualnie, do wizualizacji, można wykorzystać modularne narzędzia graficzne dostarczane przez
moduł Image Acquisition Toolbox: imtool(im)
Narzędzia te umożliwiają m.in.:
•
•
•
•
•
podgląd obrazu
podgląd pikseli obrazu w danym regionie (Tools>Pixel Region)
pomiar odległości na obrazie(Tools>Measure Distance)
“wycięcie” fragmentu obrazu(Tools>Crop Image)
poprawę kontrastu w przypadku obrazów w odcieniach szarości lub indeksowanych
(Tools>Adjust Contrast)
3.8 Przenoszenie rysunków do różnych aplikacji
Przeniesienia rysunku z MTALAB'a do innej aplikacji dokonuje się przez wybór z menu Edit okna
graficznego MATLAB'a opcji Copy Figure. W opcjach kopiowania (menu Edit/Copy Options)
należy ustawić opcję Preserve information (metafile if possible), aby nie utracić rozdzielczości i
czytelności opisów na rysunku. Zaleca się również wybranie opcji Transparent background w celu
uniknięcia przeniesienie szarego tła.
Wybór opcji Edycja/Wklej (lub użycie kombinacji klawiszy ”ctrl+v”) w innej aplikacji spowoduje
skopiowanie rysunku przechowywanego w schowku (ang. clipborad).
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
10/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
3.9 Standardowe funkcje MATLAB'a.
Elementarne funkcje matematyczne
cos(x)
sin(x)
abs(x)
log10(x)
log(x)
sqrt(x)
-
round(x) max(x)
min(x)
sum(x)
mean(x) median(x) -
cosinus
sinus
wartość bezwzględna/moduł liczby zespolonej
logarytm dziesiętny
logarytm naturalny
pierwiastek kwadratowy
zaokrąglanie liczby rzeczywistej do najbliższej całkowitej
znalezienie wartości maksymalnej w wektorze x
znalezienie wartości minimalnej w wektorze x
wyznaczenie sumy wszystkich elementów wektora x
wyznaczenie wartości średnie uwzględniając wszystkie elementy wektora x
mediana danych zawartych w wektorze x?
Tworzenie grafiki
figure
plot(x,y,'s')
subplot(m,n,p) hold (on/off)
-
nowe okno graficzne
liniowy wykres dwuwymiarowy
dzieli okno graficzne na m x n okienek, a wykres jest tworzony w każdym p-tym
okienku
„zamraża” i „odmraża” aktualny wykres umożliwiając utworzenie wykresów
nakładanych
Modyfikowanie wykresów
grid on/off
title('lancuch')
xlabel('lancuch')
ylabel('lancuch')
axis[xmin,xmax,ymin,ymax]
-
axis tight
-
axis xy
axis ij
-
aktywacja/deaktywacja siatki współrzędnych na wykresie
tytuł wykresu
opis osi x
opis osi y
ustawia widoczny zakres osi x wykresu od xmin do xmax, a osi y od ymin do
ymax
automatycznie ustawia widoczny zakres osi wykresu pomiędzy wartość
minimalne a maksymalne danych wejściowych
ustawia początek układu współrzędnych w lewym dolnym rogu wykresu
ustawia początek układu współrzędnych w lewym górnym rogu wykresu
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
11/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
4. Przebieg ćwiczenia
Oznaczenia użyte w tekście:
(sygnal)
–
nazwa funkcji, która powinna zostać użyta w celu rozwiązania danego
problemu,
s1
–
nazwy zmiennych,
s1a=s1(1:end/4) –
polecenie MATLAB'a, które należy wpisać w okno komend (ang.:
command window).
1. Tworzenie wektorów i macierzy
a) Utwórz wektor wierszowy:
•
•
•
poprzez podanie jego elementów
korzystając z operatora ”:”
korzystając z funkcji linspace
b) Utwórz wektor kolumnowy:
•
•
•
x=[ 2 4 6 8 10 12 14 16 18 ]
[]
8
6
4
2
y= 0
−2
−4
−6
−8
poprzez podanie jego elementów
korzystając z operatora ”:”
korzystając z funkcji linspace
c) Mając dany wektor t złożony z elementów o wartościach od 1 do 2 z krokiem co 0.2
utwórz wektor s, którego wartości określone są wyrażeniem s t=sin 2 3tcos 2 3t
d) Utwórz macierz o następującej postaci:
[ ]
2 4 1
A= 6 7 2
3 5 9
2. Operacje macierzowe
a) Wyznacz sumę wszystkich elementów wektorów x i y (sum).
b) Wyznacz wektor dt, którego kolejne elementy będą miały wartość równą wynikowi
dzielenia przez siebie odpowiednich elementów wektorów x i y.
c) Wyznacz wynik macierzowego mnożenia wektora x przez samego siebie. Wyjaśnić
przyczynę błędu.
d) Wyznacz wynik macierzowego mnożenia wektorów x i y.
e) Utwórz wektor x1 zawierający trzeci wiersz macierzy A.
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
12/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
f) Utwórz macierz y13 zawierającą pierwszą i trzecią kolumnę macierzy A.
g) Wyznacz wartość średnią dla każdej kolumny i każdego wiersza macierzy A.
h) Wyznacz sumę wszystkich elementów w macierzy A.
3. Operacje logiczne
a) Utwórz wektory wierszowe x1 i x2:
x1=[ 0 1 2 3 4 5 6 7 8 9 ] i
x2=[ 5 1 3 4 9 8 7 2 0 6 ] . Wykonaj poniższe polecenia i zinterpretuj
wyniki wyrażeń:
•
x1 > x2
•
x1 & x2
•
(x1 > 2)
•
x1(x1 >4)
b) W wektorze x1 zmień wszystkie elementy większe od 5 na 5.
c) Oblicz sumę elementów o wartościach nieparzystych w wektorze x2 (sum, find, rem).
4. Instrukcje sterujące
a) wykonaj polecenie z p. 3.c) korzystając z instrukcji sterujących (for i if).
5. Operacje graficzne
a) Utwórz w jednym układzie współrzędnych wykresy następujących funkcji y1(x)=sin(x) i
y2(x)=cos(x) dla -π ≤ x ≥ π. Linia wykresu funkcji y1(x) powinna być ciągła i koloru
niebieskiego, a funkcji y2(x) koloru czerwonego. Nadaj etykiety osiom i tytuł rysunkowi.
Dobierz zakresy osi x i y. Dodaj siatkę i legendę. (plot, axis, title, xlabel, ylabel, legend,
grid)
b) Utwórz w jednym oknie graficznym, ale w odrębnych układach współrzędnych wykresy
funkcji y1(x)=sin(x), y2(x)=cos(x), y3(x)=sin(3*x) i y4(x)=cos(2*x) dla -π ≤ x ≥ π. Linia
wykresu funkcji y1(x) powinna być ciągła i koloru niebieskiego, funkcji y2(x) koloru
czerwonego, funkcji y3(x) koloru zielonego, a funkcji y4(x) koloru czarnego. Nadaj
etykiety osiom i tytuły wykresom Dobierz zakresy osi x i y. Dodaj siatkę. (subplot, plot,
axis, title, xlabel, ylabel, grid)
c) Do zmiennej moon wczytaj obraz z pliku 'moon.tif', a następnie utwórz jego ilustrację
(imread, imshow).
d) W nowym oknie graficznym w odrębnych układach współrzędnych (obok siebie) utwórz
ilustracje: imshow(moon/2) i imshow(moon/2,[ ]) (subplot, title). Nadaj tytuły
rysunkom. Wyjaśnij zaobserwowane różnice.
e) W nowym oknie graficznym w odrębnych układach współrzędnych utwórz ilustrację
obrazu oraz wykresy profili jego środkowej kolumny (na prawo od ilustracji obrazu) i
środkowego wiersza (poniżej ilustracji obrazu).(subplot, imshow, plot, title, xlabel,
ylabel, axis).
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
13/14
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Sprawozdanie
Ćwiczenie ….......................................................................
L.p.
Imię i nazwisko
Data …..............
Grupa
Data
1
2
3
Punkt
Liczba punktów
Uzyskana
ćwiczenia
do uzyskania
liczba punktów
1
2
2
2
3
2
4
1
5
3
Uwagi prowadzącego
Ćwiczenie 1 - „Wprowadzenie do MATLAB'a”
14/14

Podobne dokumenty