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
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
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. 11 a 12 a 1n A=[a a 21 a 22 a 21 a m1 a m2 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 (V k ) (Równ. 3). V w =[a 11 a 12 a 1n ],V k =[a 11 a 12 a 1n],S=[a 11] (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
która ilustruje wzór (4). m=[ 1 2 3 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) - macierz jednostkową M x N ones(m,n) - macierz M x N o elementach równych 1 zeros(m,n) - macierz M x N o elementach równych 0 rand(m,n) - macierz M x N wypełniona liczbami pseudolosowymi z przedziału <0,1> o rozkładzie jednorodnym randn(m,n) - 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) linspace(a,b,n) - wektor o n wartościach rozłożonych równomiernie pomiędzy a i b włącznie z wartościami a i b logspace(a,b,n) - 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
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
else end blok instrukcji_else 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
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 loglog semilogx semilogy plotyy Wykres danych z liniowa skalą na obu osiach Wykres danych z logarytmiczną skalą na obu osiach Wykres danych z logarytmiczną skalą na osi x i liniową na osi y Wykres danych z liniową skalą na osi x i logarytmiczną na osi y Wykres danych z dwoma różnymi liniowymi skalami osi y po lewej i prawej stronie Tab. 2 Warianty wywołania funkcji plot plot(y) plot(x,y) plot(x,y, opcje stylu ) plot(x1,y1,x2,y2) plot(x,[y1; y2]) plot(x1,y1, os1,x2,y2, os2 ) pojedynczy wykres (y - wektor), x domyślne (indeks elementy w wektorze y: [1,2,3, length(y)]), opcje stylu domyślne pojedynczy wykres (y wektor), opcje stylu domyślne pojedynczy wykres (y-wektor) ze określeniem opcji stylu dwa wykres wektorów y1, y2 ze określeniem i wektorów dla osi x (x1, x2), opcje stylu domyślne dwa wykres wektorów y1, y2 będących kolumnami macierzy ([ ]), wspólny wektory dla osi x, opcje stylu domyślne 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 y żółty m purpurowy c zielononiebieski r czerwony g zielony b niebieski w biały k czarny - linia ciągła -- linia przerywana : linia kropkowana -. linia typu kreska-kropka + symbol plusa o kółko * gwiazdka * x znak x. kropka s kwadra/t d romb v/^/>/< trójkąt s/r/w/v p gwiazdka pięciokątna h gwiazdka sześciokątna Ćwiczenie 1 - Wprowadzenie do MATLAB'a 7/14
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') xlabel('lancuch') ylabel('lancuch') axis[xmin,xmax,ymin,ymax] grid on/off legend tytuł wykresu etykieta osi x etykieta osi x ustawia widoczny zakres osi x wykresu od x min do x max, a osi y od y min do y max aktywacja/deaktywacja siatki współrzędnych na wykresie 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
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
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
3.9 Standardowe funkcje MATLAB'a. Elementarne funkcje matematyczne cos(x) sin(x) abs(x) log10(x) log(x) sqrt(x) - cosinus - sinus - wartość bezwzględna/moduł liczby zespolonej - logarytm dziesiętny - logarytm naturalny - pierwiastek kwadratowy round(x) - zaokrąglanie liczby rzeczywistej do najbliższej całkowitej max(x) - znalezienie wartości maksymalnej w wektorze x min(x) - znalezienie wartości minimalnej w wektorze x sum(x) - wyznaczenie sumy wszystkich elementów wektora x mean(x) - wyznaczenie wartości średnie uwzględniając wszystkie elementy wektora x median(x) - mediana danych zawartych w wektorze x? Tworzenie grafiki figure - nowe okno graficzne plot(x,y,'s') - liniowy wykres dwuwymiarowy subplot(m,n,p) - dzieli okno graficzne na m x n okienek, a wykres jest tworzony w każdym p-tym okienku hold (on/off) - zamraża i odmraża aktualny wykres umożliwiając utworzenie wykresów nakładanych Modyfikowanie wykresów grid on/off - aktywacja/deaktywacja siatki współrzędnych na wykresie title('lancuch') - tytuł wykresu xlabel('lancuch') - opis osi x ylabel('lancuch') - opis osi y axis[x min,x max,y min,y max ] - ustawia widoczny zakres osi x wykresu od x min do x max, a osi y od y min do y max axis tight - automatycznie ustawia widoczny zakres osi wykresu pomiędzy wartość minimalne a maksymalne danych wejściowych axis xy - ustawia początek układu współrzędnych w lewym dolnym rogu wykresu axis ij - ustawia początek układu współrzędnych w lewym górnym rogu wykresu Ćwiczenie 1 - Wprowadzenie do MATLAB'a 11/14
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: x=[2 4 6 8 10 12 14 16 18] poprzez podanie jego elementów korzystając z operatora : korzystając z funkcji linspace 8 6 4 2 b) Utwórz wektor kolumnowy: 0 2 4 y=[ 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: A=[ 2 4 1 9] 6 7 2 3 5 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
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
Sprawozdanie Ćwiczenie... Data... L.p. Imię i nazwisko Grupa Data 1 2 3 Punkt ćwiczenia Liczba punktów do uzyskania Uzyskana liczba punktów Uwagi prowadzącego 1 2 2 2 3 2 4 1 5 3 Ćwiczenie 1 - Wprowadzenie do MATLAB'a 14/14