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