MATLAB
-
Upload
cherokee-solis -
Category
Documents
-
view
25 -
download
0
description
Transcript of MATLAB
MATLAB
PROJEKTOWANIE GRAFICZNE
2
Funkcje graficzne można podzielić na cztery podstawowe grupy:
przeznaczone do tworzenia wykresów dwu- i trójwymiarowych,
prezentujące wykresy ciągłe i dyskretne, umożliwiające tworzenie grafiki
wektorowej i rastrowej, wysokiego i niskiego poziomu.
3
OKNA GRAFICZNE
Funkcja Opis
figure tworzy nowe okno graficzne i uaktywnia je
figure(n) uaktywnia okno o nr n lub tworzy nowe i daje
mu nr n
close zamyka okno aktywne
close(n) zamyka okno o nr n
close all zamyka wszystkie okna
clf usuwa zawartość aktywnego okna
4
Funkcja subplotFunkcja ta umożliwia umieszczanie wielu rysunków w jednym oknie. Dzieli ona okno na mniejsze prostokątne okienka, w których można narysować odrębne wykresy. subplot(m,n,p) – dzieli okno graficzne na mxn okienek
oraz uaktywnia okno p. okienka są numerowane od lewej do prawej, wierszami od góry do dołu.
subplot(‘Position’,[lewy dolny szerokość wysokość]) – tworzy w obrębie aktywnego rysunku nowe prostokątne okienko o podanym położeniu i wymiarach. Położenie jest podawane względem lewego dolnego rogu rysunku. Parametry szerokość=wysokość=1 oznaczają układ o rozmiarach rysunku.
5
Grafika dwuwymiarowa
Polecenie Opis
plot(x,y) rysuje wykres elem.wektora y wzgl.elem.wektora x;
plot(y) rysuje wykres elem.wektora y, przyjmując x=1:length(y);
plot(x,y,s) rysyje wykres y(x) z określeniem dokładnego wyglądu linii; s-łańcuch
zawierający kody;
plot(x1,y1,x2,y2,...) rysuje w jednym oknie wiele wykresów: y1(x1), y2(x2),...
plot(x1,y1,s1,x2,y2,s2,..)
rysuje w jednym oknie wiele wykresów z określeniem dokładnego
wyglądu linii każdego z nich.
6
Znaki Rodzaj linii
‘-’ ciągła (domyślna)
‘- -’ kreskowana
‘:’ kropkowana
‘-.’ kreska-kropka
7
Znaki Kolor linii
‘y’ żółty
‘m’ karmazynowy
‘c’ turkusowy
‘r’ czerwony
‘g’ zielony
‘b’ niebieski
‘w’ biały
‘k’ czarny
8
Znaki Oznaczenia punktów
‘+’ krzyżyk
‘*’ gwiazdka
‘.’ kropka
‘o’ kółko
‘x’ iks
‘s’ kwadrat
‘d’ romb
‘p’ gwiazdka pięcioramienna
‘h’ gwiazdka sześcioramienna
‘v’ trójkąt skierowany do dołu
‘^’ trójkąt skierowany do góry
‘<‘ trójkąt skierowany w lewo
‘>’ trójkąt skierowany w prawo
9
Funkcja linspace
Funkcja ta pomaga w tworzeniu danych
do wykresu. linspace(x1,x2,N) – generuje
wierszowy wektor N liczb rozłożonych równomiernie w przedziale od x1 do x2.
linspace(x1,x2) – generuje domyślnie 100 liczb z przedziału x1 do x2.
10
Funkcje opisujące wykresy
Funkcja Opis
xlabel(tekst) wyświetla łańcuch znaków tekst jako opis osi x aktywnego wykresu
ylabel(tekst) wyświetla łańcuch znaków tekst jako opis osi y aktywnego wykresu
title(tekst) wyświetla łańcuch znaków tekst jako tytuł aktywnego wykresu
text(x,y,tekst) wyświetla łańcuch znaków tekst w miejscu określonym przez współrzędne x,y
legend(s1,s2,..)
wyświetla legendę; łańcuch znaków s1 jest opisem odnoszącym się do pierwszego
wykresu,s2-drugiego,...
grid on/off włącza/wyłącza wyświetlanie pomocniczej siatki współrzędnych
11
Funkcja hold
Wyświetlanie wykresu w oknie graficznym powoduje
jednoczesne wyczyszczenie okna i usunięcie poprzedniego
rysunku. Dodanie wykresu do znajdującego się w oknie
umożliwia funkcja hold. hold on/off – wyłącza/włącza tryb czyszczenie okien; ishold – sprawdza stan przełącznika hold; axis – zmiana wyglądu osi.
12
Polecenie Opis
axis([xmin xmax ymin ymax]) ustawia zakres osi x i y
axis auto włącza tryb automatycznego ustawiania zakresu osi
axis manual włącza tryb autom.ustawienia zakresu osi; po włączeniu przełącznika hold
wszystkie kolejne wykresy będą rysowane w takim samym układzie
współrzędnych
axis ij zmienia układ współ.na macierzowy
axis xy zmienia układ współ.na kartezjański
axis equal zmienia skalowanie osi tak, aby jednostka na podziałce miała ten sam
rozmiar na wszystkich osiach
13
axis image zmienia rozmiary osi na takie same, jak rozmiary wykresu
axis square ustawia jednakowy rozmiar wszystkich osi
axis normal przywraca standardowe ustawienia rozmiaru osi
axis off ukrywa osie wraz z ich opisem
axis on przywraca wyświetlanie osi
[s1,s2,s3]=axis(‘state’)
zwraca aktualne ustawienia układu:s1-auto lub manual, s2-on lub off,s3-xy lub ij
v=axis zwraca wektor wierszowy v=[xmin xmax ymin ymax]
14
Funkcja fplot
Z tej funkcji korzystamy w celu narysowania możliwie najbardziej precyzyjnego wykresu funkcji. fplot(f,[x0,xk]) f-łańcuch znaków zawierających nazwę funkcji; x0,xk-początek i koniec przedziału rysowania funkcji; [x,y]=fplot(...) – nie powoduje narysowania wykresu,
tylko zwraca wektor argumentów x i wektor wartości funkcji y. Wykres uzyskanych danych można narysować za pomocą polecenia plot(x,y).
15
Wykresy w skali logarytmicznej
Funkcja Opis
loglog(x,y,s) rysuje wykres, używając skal logarytmicznych na obu osiach
semilogx(x,y,s) ...tylko na osi x
semilogy(x,y,s) ...tylko na osi y
16
Funkcja logspace
Pomaga w przygotowywaniu wykresów w skali
logarytmicznej. Generuje wektor wierszowy N
liczb, rozmieszczonych logarytmicznie między
wartościami 10^x1 a 10^x2:
logspace(x1,x2,N).
Wywołanie funkcji bez argumentu N spowoduje
wygenerowanie wierszowego wektora 50 liczb.
17
Funkcja polar
Funkcja ta służy do rysowania wykresów w
biegunowym układzie współrzędnych:
polar(theta,r,s);
theta – wektor kątów (w radianach) dla
poszczególnych punktów;
r – wektor odległości poszczególnych
punktów od początku układu
współrzędnych.
Opcjonalnym argumentem funkcji jest łańcuch znaków
s, określający wygląd rysowanej linii, jak przy funkcji
plot.
18
Funkcje rysujące wykresy danych zespolonych
Funkcja Opis
plot(z,s) jeżeli z jest macierzą o elementach zespolonych, to zostanie narysowany wykres
Im(z)=f(Re(z)); równoważne polecenie: plot(real(z),imag(z),s)
compass(z,s) compass(x,y,s)
rysuje wykres, na którym elementy macierzy zespolonej z są przedstawione w postaci strzałek o wspólnym początku i grotach w punktach opisanych przez współrzędne
x=real(z), y=imag(z); x i y są współrzędnymi kartezjańskimi, wykres jest rysowany w biegunowym układzie współrzędnych
19
feather(z,s)
feather(x,y,s)
rysuje wykres, na którym elementy macierzy zespolonej z są przedstawione w postaci
strzałek o początkach rozmieszczonych
równomiernie na osi x; długości strzałek są równe
modułom elementów macierzy z, a kąty nachylenia strzałek – ich argumentom.
20
GRAFIKA TRÓJWYMIAROWA
• Matlab zawiera dużą liczbę wbudowanych funkcji służących do wizualizacji obiektów trójwymiarowych. Zapoznamy się min. z potrzebnymi do tworzenia wykresów krzywych przestrzennych (plot3), siatek (mesh), powierzchni (surf) oraz wykresów konturowych (contour).
• Aby uzyskać w Matlabie pomoc na temat funkcji 3D należy w oknie komend wydać komendę help graph3d.
21
Funkcja plot3
• Polecenie
plot3(x,y,z,s)
generuje trójwymiarową krzywą złożoną z
punktów (xi, yi, zi), których współrzędne zostały
określone w wektorach x, y, z. Wektory muszą
być tej samej długości.
Funkcja ta jest odpowiednikiem funkcji plot w
grafice dwuwymiarowej.
22
• Ćw.1
Wykonaj wykres funkcji
r(t)=< t*cos(t), t*sin(t), t >, t=-10*pi:pi/100:10*pi.
Podpisz osie, włącz siatkę.
23
Funkcja meshgrid• Powierzchnia rysowana jest w Matlabie jako
wykres funkcji z=f(x,y), przy czym współrzędne punktów (xi,yi) określone są za pomocą wektorów X i Y, gdzie indeksy ij przyjmują wartości
i=1:length(X), j=1:length(Y).Ponieważ tworzymy wykres trójwymiarowy na dwuwymiarowej płaszczyźnie ekranu, na początek należy wygenerować specjalną siatkę na płaszczyźnie XY w tych węzłach, w których szukane są wartości funkcji w osi z. Służy do tego funkcja meshgrid.
24
[x,y]=meshgrid(X,Y) – transformuje obszar opisany przez wektory X i Y (z przestrzeni 3D) na dwie macierze x oraz y we współrzędnych ekranowych 2D.
[x,y]=meshgrid(X) – jest równoważne wywołaniu meshgrid(X,X).
25
Funkcja mesh
• mesh(x,y,z,c) –rysuje powierzchnię opisaną macierzami x,y,z w postaci kolorowej siatki o polach wypełnionych kolorem tła; elementy macierzy c określają kolory linii poszczególnych pól.
• mesh(x,y,z)-rysuje powierzchnię, przyjmując c=z.• mesh(z,c)-rysuje wykres wartości elementów
macierzy z, przyjmując x=1:n, y=1:m, gdzie [m,n]=size(z).
• meshc(x,y,z,c)-rysuje siatkę identyczną jak funkcja mesh i umieszcza pod nią wykres poziomicowy.
• meshz(x,y,z,c)-działa jak mesh, ale dodatkowo w dół od krawędzi wykresu rysowane są linie określające płaszczyzny odniesienia.
26
Ćw.2
Utwórz wykres paraboloidy hiperbolicznej z=y2-x2 w przedziałach x=-1:0.05:1,
y=-1:0.05:1.
Wyłącz układ współrzędnych, dodaj
wykres konturowy.
27
Funkcja surf, waterfall
• surf(x,y,z,c) –rysuje różnokolorową powierzchnię opisaną macierzami x,y,z.
• surf(x,y,z) –rysuje powierzchnię, przyjmując c=z.• surf(z,c) –rysuje powierzchnię, przyjmując x=1:n,
y=1:m, gdzie [x,y]=size(z).• surfc(x,y,z,c) –łączy działanie funkcji surf i contour.• surfl(x,y,z,s,k) –rysuje powierzchnię z
uwzględnieniem odbić światła; s-określa kierunek, z którego pada światło, k-określa współczynniki odbicia i rozproszenia.
• waterfall(x,y,z,c) –działa jak meshz, ale nie rysuje linii odpowiadających kolumnom macierzy.
28
Ćw.3
Napisz skrypt, który rysuje wykresy funkcji:
f(x,y)=exp(-(x-1).^2+y.^2)+exp(-(x+1).^2-y.^2)
dla x,y=-3:0.3:3, w jednym oknie graficznym
za pomocą poleceń surf i waterfall.
29
Mapy kolorów
• Mapa kolorów jest macierzą trójkolumnową, której elementami są liczby rzeczywiste z zakresu 0,0-1,0. Każdy wiersz macierzy jest wektorem RGB definiującym dany kolor za pomocą intensywności trzech podstawowych kolorów:czerwonego, zielonego i niebieskiego. Funkcja colormap pozwala odczytać lub zmienić mapę kolorów przypisaną aktywnemu rysunkowi.
m=colormap –zwraca aktualną mapę kolorów m. colormap(m) –zmiana aktualnej mapy kolorów na mapę m. colormap(‘default’) –przywraca standardową mapę kolorów.
30
Mapa Opis
gray mapa odcieni szarości
hot mapa kolorów ciepłych – od czarnego, poprzez odcienie czerwonego, pomarańczowego i żółtego, aż do białego
cool mapa kolorów zimnych – od turkusowego do karmazynowego
autumn mapa kolorów zmieniających się od czerwonego, przez pomarańczowy, do żółtego
summer mapa odcieni kolorów żółtego i zielonego
hsv standardowa mapa kolorów w systemie HSV; każdy wiersz macierzy zawiera 3 liczby z zakresu od 0 do 1 opisujące odcień, nasycenie i jaskrawość
31
Animacja
%skrypt filmm=moviein(5); %w macierzy m będzie przechowywanych 5 klatek animacji
x=0:pi/100:pi;for i=1:5 h1_line=plot(x,sin(i*x)); set(h1_line,'LineWidth',1.5,'Color','m') grid title('funkcja sinus sin(kx), k=1,2,3,4,5') h=get(gca,'title'); set(h,'FontSize',12) xlabel('x')
32
k=num2str(i); if i>1 s=['sin(',k,'x)']; else s='sin(x)'; end ylabel(s) h=get(gca,'ylabel'); set(h,'FontSize',12)
m(:,i)=getframe; %każda klatka jest zapisywana w pojedynczej
kolumnie macierzy m
pause(2)end
movie(m) %odgrywa zapamiętane w macierzy m klatki animacji na
ekranie
33
Funkcje shpere i cylinder
• sphere(n) – tworzy kulę o promieniu 1 oraz środku w początku układu współrzędnych z wykorzystaniem 2(n+1) punktów siatki tworzącej jej powierzchnię. Dodanie polecenia: surf(x+2,y-1,z+1) utworzy wykres kuli o promieniu 1 ze środkiem w punkcie (2,-1,1)
34
• Funkcja cylinder jest wykorzystywana do tworzenia wykresów powierzchni obrotowych. Pobiera ona dwa opcjonalne parametry wejściowe.
W komendzie cylinder(r,n) parametr r oznacza wektor, który definiuje promienie walca w kolejnych punktach wzdłuż osi z, a n oznacza liczbę punktów siatki na obwodzie walca. Wartości domyślne dla tych parametrów to r =[1 1] oraz n=20.Komenda: cylinder([1 0]) tworzy stożek o wysokości i promieniu podstawy równym 1.