INFORMATYKA
INFORMATYKA
2
LAB
INSTRUKCJA DO ĆWICZENIA NR 2
TEMAT:
FUNKCJE GRAFICZNE MATLABA
INFOMATYKA
Przedmiot: INFORMATYKA – Katedra Robotyki i Mechatroniki AGH
Laboratorium 1 „ Wprowadzenie do Pakietu MATLAB”
I.
CEL ĆWICZENIA:
Celem ćwiczenia jest zapoznanie się z funkcjami graficznymi dostępnymi w pakiecie MATLAB, poznanie podstawowych sposobów na reprezentacje graficzną funkcji dwu i trójwymiarowych, oraz metod na wczytywanie i obróbkę obrazów.
II.
PODSTAWOWE KOMENDY UŻYWANE W ĆWICZENIU: Komenda
Przykład
Opis
Grafika dwuwymiarowa 2D
plot
plot(t,x); plot(A);
Wyświetla przebieg funkcji lub rozkład danych
subplot
subplot(m,n,p);
Wyświetla wiele wykresów (m x n wykresów) w jednym oknie gdzie p to numer bieżącego wykresu
loglog
loglog(x,y)
Rysuje wykres na skali logarytmicznej na obu osiach semilogx
semilogx(x,y)
Rysuje wykres o skali logarytmicznej na osi x
semilogy
semilogy(x,y)
Rysuje wykres o skali logarytmicznej na osi y
xlabel
xlabel(‘ czas’);
Wstawia opis osi x na wykresie
ylabel
ylabel(‘ temperatura’);
Wstawia opis osi y na wykresie
title
title(‘ tytuł wykresu’);
Wstawia tytuł wykresu
text
text(x,y,’Funkcja’);
Wyświetla dowolny tekst w punkcie o współrzędnych (x,y) grid
grid on; grid off;
Włącza lub wyłącza siatkę na wykresie
kolor linii wykresu plot(A,’r’); plot(A,’g’); np: kolory: y(żół), m, c, r(czerw), g, b, w(biały), k(czarny) typ lini wykresu
plot(A,’r--’); ‘y+’; ‘k*’
np typy: .; o; x; + ; *; -; --; :; -.; (‘r--’ -przerywana czerw. ) axis
axis(‘auto’);
Automatyczne dopasowanie układu współrzędnych wykresu axis(‘equal’);
Skaluje długości jako równe na osi x i na osi y
axis(‘square’);
Tworzy wykres kwadratowy (tyle samo jednostek na x i y) axis(‘image’);
Skaluje wyświetlanie rysunków (grafiki bitmapowej) axis([ a b c d]);
Określa zakresy liczb na osiach x (od a do b), y (od c do d) axis(‘off’);
Ukrywa osie układu współrzędnych
axis(‘on’);
Przywraca osie układu współrzędnych
hold
hold on; hold off
Umożliwia rysowanie więcej niż 1 przebiegu na 1-nym wykr.
bar
bar(1:10;1:10); bar(x y) Wyświetla wykres słupkowy echo
echo on; echo off
Włącza i wyłącza wyświetlanie na ekranie wykonyw. poleceń pi
A=[0:0.1:pi]; B=C*pi;
Liczba pi (π) wywołana z dużą dokładnością
Grafika trójwymiarowa 3D
meshgrid
[X,Y]=meshgrid(x,y)
Przygotowuje węzły prostokątnej siatki X,Y pod wykres 3D
mesh
mesh(X,Y,Z);
Funkcja wykreśla wykres 3D zbioru punktów X,Y,Z
meshz
meshz(X,Y,Z);
j.w., ale rysuje wykres jako „wycinek bryły” a nie powierzchn.
zlabel
zlabel(‘ wysokość’)
Tak jak w funkcjach 2D, opisuje współrzędną Z wykresu text
text(x,y,z,’napis’)
Jak w funkcjach 2D, wstawia napis w dowolne miejsce na rys.
view
view(20,30);
Zm. kąt obserw. wykresu 3D α=200(azymut), β=300(elewacja) Grafika rastrowa (bitmapowa) i animacje 2D
image
image(A);
Wyświetla macierz jako obraz o odpowiedniej skali kolorów moviein
FILM=moviein(10)
Tworzy zmienną FILM z 10 klatkami obrazu
getframe
FILM(1)=getframe
Wpisuje do FILM n-tą klatkę obrazu (aktywne okno Figure) movie
movie(FILM)
Odtwarza film zawarty w zmiennej FILM
movie(FILM,10,0.5)
Film odtwarzany jest 10razy z odstępem czasu co 0.5[s]
imread
D=imread(‘rys.jpg’)
Wczytuje dowolny rysunek z dysku jako macierz
double
D1=double(D)
Konwersja typów macierzy
D1=double(D)/255
Konwersja + normalizacja obrazu z zakresu 0-255 do 0-1
2
Przedmiot: INFORMATYKA – Katedra Robotyki i Mechatroniki AGH
Laboratorium 1 „ Wprowadzenie do Pakietu MATLAB”
III.
ZADANIA DO WYKONANIA:
Uwaga: Każ de zadanie najlepiej wykonać w osobnym m-pliku, co ułatwia analizę działania funkcji oraz przyspiesza poprawianie błę dów.
1. Na jednym wykresie narysować przebiegi funkcji sin(t) oraz funkcji cos(2t), gdzie t zmienia się w zakresie od 0 do 2π. Wykresy narysować dwoma różnymi kolorami i przy użyciu 2 różnych typów linii (np: lini ciągłej oraz linii przerywanej). Zatytułować wykres, opisać osie współrzędnych x i y, wstawić legendę do wykresu. Oraz wstawić dowolne dwa teksty na obszarze rysunku (na przykład Funkcja 1, Funkcja 2 itp.) 2. Wykreślić wykres słupkowy funkcji sinus (sin(t)) w zakresie t = 0 do 2π, przy czym przyjąć że wektor argumentu t zmienia się co 0.2 w podanym zakresie. Opisać osie x, y wykresu włączyć siatkę na wykresie oraz zatytułować wykres.
3. Utworzyć siatkę punktów na płaszczyźnie pod wykres 3D zakres maksymalny: y = od -10 do 10, x = od 5
do 5) zastosować dwa podziały gęstości: jeden mniejszy (np: co 1 lub 0.5) a drugi większy (np: co 0.1 lub 0.2 ) . Wykreślić wykres funkcji z=sin(x)*cos(y). Opisać osie i zatytułować wykresy.
4. Analogicznie jak w punkcie poprzednim wykonać wykres dowolnej wymyślonej przez siebie funkcji przestrzennej dla jednej siatki współrzędnych X,Y. Siatkę do badanego wykresu funkcji należy dopasować w taki sposób, aby nie była zbyt gęsta a zakres punktów (dziedzinę funkcji) należy tak dobrać, zeby najlepiej zobrazować wykres obserwowanej funkcji. Opisać osie i zatytułować wykres. Zmienić kąt obserwacji wykresu i pokazać 3 dowolne rzuty.
5. Utwórz macierz o wymiarach 5x5, która będzie miała na przekątnej liczby 50, a reszta liczb będzie wynosiła zero. Wyświetl macierz jako obraz. Przemnóż macierz przez trzy dowolne inne liczby tworząc trzy inne macierze i wyświetl te macierze na jednym oknie z czterema wykresami. Odpowiednio zatytułuj wykresy (np: Macierz 5x5 przekątna 50). Opisz osie x i y każdego wykresu.
6. Utwórz 5 macierzy jak w punkcie 5 instrukcji i wyświetl je kolejno jako film w jednym oknie. Aby utworzyć macierz z kolejnymi klatkami obrazu użyj funkcji getframe aktywowanej za każdym razem po wyświetleniu danej macierzy w oknie figure. (Należy 5 razy powtórzyć funkcję getframe dla każdej kolejnej wyświetlonej macierzy).
7. Wczytaj do przestrzeni roboczej MATLABA dowolny rysunek ściągnięty z internetu (np w formacie JPG) (najlepiej o niezbyt dużych rozmiarach). Wyświetl w jednym oknie kolejno cztery wykresy:
− Rysunek w oryginalnym wyglądzie,
− Składową czerwoną rysunku (R)
− Składową zieloną rysunku (G)
− Składową niebieską rysunku (B)
Opisz rysunki.
8. Wczytaj dowolny rysunek w formacie JPG ściągnięty z internetu (może być kolorowy lub czarno-biały).
Przekonwertuj dane macierzy zapisanej z rysunkiem na typ double z zakresu 0-1 (użyj funkcji: RysunekNowy=double(RysunekOryginalny)/255). Dokonaj czterech dowolnych zmian wartości w macierzy (np podziel przez 2, lub zmień wartości tylko jednej składowej koloru npR, lub podmień tylko część danych w macierzy na inne- np: czarny prostokąt w środku obrazu). Pokaż na osobnych wykresach wszystkie cztery wykonane operacje.
3
Przedmiot: INFORMATYKA – Katedra Robotyki i Mechatroniki AGH
Laboratorium 1 „ Wprowadzenie do Pakietu MATLAB”
IV.
SPRAWOZDANIE:
W sprawozdaniu należy zamieścić wszystkie zrealizowane w punkcie III zadania. Każde zadanie powinno być zatytułowane i ponumerowane, zgodnie z numeracją w instrukcji. Jeżeli jest to wymagane to sprawozdanie powinno zawierać metodę wykonania i wynik w postaci rysunku lub listingu. W sprawozdaniu nie umieszczamy wniosków, chyba że jest to wyraźnie zaznaczone.
Ogólne uwagi dotyczące sprawozdania:
• Strona tytułowa, powinna zawierać: Imiona i nazwiska osób, numer grupy, nazwę przedmiotu, tytuł
ćwiczenia, numer ćwiczenia i datę wykonania ćwiczenia,
• Układ strony powinien być następujący: marginesy 0,5 cm z każdej strony, czcionka 10, odstęp 1.
• Wykresy możliwie małe, ale czytelne, opisane i umieszczone bezpośrednio pod lub obok układu tak, żeby było wiadomo który przebieg należy do którego układu,
• Sprawozdanie nie powinno być długie ale powinno zawierać wszystkie niezbędne informacje.
Uwaga: Sprawozdanie należ y przesyłać na pocztę lub wskazany przez prowadzą cego serwer FTP w formacie PDF zatytułowane w nastę pują cy sposób:
NumerGrupy_Nazwisko_Imię _ć wNumerCwiczenia.pdf na przykład:
13_Kowalski_Jan_ć w1.pdf
14_Nowak_Krzysztof_ć w9.pdf
15_Student_Janusz_ć w8.pdf
Sprawozdania oddane w innej formie lub z nieprawidłowym opisem nie bę dą przyjmowane!
4