4. Programowanie w języku Matlab

Transkrypt

4. Programowanie w języku Matlab
Programowanie w języku
Matlab
D. Caban, P. Skurowski
Wykład 4.
Wizualizacja wyników
Rodzaje dostępnych wizualiacji
Liniowe wykresy 2D i 3D (liniowe,
schodkowe, impulsy)
Współrzedne liniowe, logarytmiczne i biegunowe
Punktowe (scatter)
Słupkowe, tortowe
Obrazy
Powierzchnie
Kontury (izolinie)
Pola wektorowe
…
Mój pierwszy ... wykres znaczy sie
>>
>>
>>
>>
figure
x = -pi:0.1:pi;
y = sin(x);
plot(x,y);
%
%
%
%
lub n=figure lub figure(n)
wektor argumentów funkcji
wektor wartości funkcji
rysowanie wykresu
1
Dwa przebiegi na wykresie
>> x = -pi:0.1:pi;
>> plot(x,sin(x),x,cos(x));
lub
>> plot(x,[sinx(x), cos(x)])
UwaŜać na jednakową długość
JeŜeli chcemy kilka
przebiegów o róŜnych ‘x’ to
>>hold on
Modyfikacje
MoŜemy zmieniać parametry wykresu
(bieŜący lub wskazany handlerem)
xlabel, ylabel, xlim, title, legend,…
MoŜna edytować interaktywnie
MoŜna teŜ podać w wywołaniu funkcji
>> plot(x,y,’Xlim’, [0 10])
Kilka wykresów na jednym rysunku
x = -2*pi:0.01:2*pi;
subplot(2,2,1);
plot(x,sin(x));
subplot(2,2,2);
plot(x,cos(x));
subplot(2,2,3);
plot(x,sin(x)./x);
subplot(2,2,4);
plot(x,2*x);
2
Wykresy 3D
Krzywa parametryczna
>> t = pi:pi/18:20*pi;
>> plot3(sin(t),cos(t),t);
Wykresy 3D
Wykresy zmiennych dwówymiarowych
Funkcje: surf, mesh
Oparte na siatce czworokątów
(triangulacja niejawna)
z = sin( x) * sin( y ) * e ( − x
2
− y2 )
>> [X,Y] = meshgrid(-pi:0.2:pi,-pi:0.2:pi); %współrzędne
>> Z= sin(X).*sin(Y).*exp(-X.^2–Y.^2); %wartości funkcji
>> mesh(X,Y,Z);% wykres
Bryły 3D
Surf i mesh pozwalaja na rysowanie nie
tylko funkcji ale i bardziej
skomplikowanych kształtów
>> [x,y,z]=sphere(7);
>> surf(x,y,z,ones(7));
>> alpha 0.7
3
Wykresy 3D przy nierównomiernie
rozmieszczonych danych 1/2
Repróbkowanie
>> [X,Y] = meshgrid(xlin,ylin);
>> Z = griddata(x,y,z,X,Y,'cubic');
Wykresy 3D przy nierównomiernie
rozmieszczonych danych 2/2
Triangulacja
>> TRI = delaunay(x,y);
>> trisurf(TRI,x,y,z);
Obrys danych
Bryła wypukła
rozpięta na danych
XX=randn(1000,1);
YY=randn(1000,1);
c=convhull(XX,YY);
plot(XX,YY,'.','markersize',10)
hold on, plot(XX(c),YY(c),'-r');
4
Obrys danych 3D
XX=randn(1000,1);
YY=randn(1000,1);
ZZ=randn(1000,1);
cc = convhulln([XX,YY,ZZ]);
trisurf(cc,XX,YY,ZZ)
alpha 0.5
hold on;
plot3(XX,YY,ZZ,'.','markersize',10)
„Picowanie” wykresów
>> [X,Y] = meshgrid(-pi:0.2:pi,-pi:0.2:pi);
>> Z = sin(X).*sin(Y).*exp(-X.^2–Y.^2); h =
surf(X,Y,Z);
>> colormap hot; shading interp;
>> set(h,'EdgeColor','k')
„Picowanie” wykresów c.d.
>>
>>
>>
>>
light('Position',[-2,2,20]); lighting phong;
material([0.4,0.6,0.5,30]);
set(h,'FaceColor',[0.7 0.7 0],'BackFaceLighting','lit');
view([30,25])
5
O czym nie było
Patche
Izolinie
Reprezentacja pól wektorowych
Reprezentacja danych
wolumetrycznych
Skalarnych
Wektorowych
MRI
6