220 likes | 561 Views
Introduction to Matlab:. Matlab Graphics. 3D Graphics. S. Awad, Ph.D. M. Corless, M.S.E.E. E.C.E. Department University of Michigan-Dearborn. 3D Graphics Topics. Creating Mesh and Surface Plots Viewing a Pseudocolor Matrix Creating Contour Plots Adding a Color-Bar Interpolating 3D Data.
E N D
Introduction to Matlab: Matlab Graphics 3D Graphics S. Awad, Ph.D. M. Corless, M.S.E.E. E.C.E. Department University of Michigan-Dearborn
3D Graphics Topics • Creating Mesh and Surface Plots • Viewing a Pseudocolor Matrix • Creating Contour Plots • Adding a Color-Bar • Interpolating 3D Data
Assume that: » x=[-1:0.2:1]; y=[-1:0.2:1]; Mesh and Surface Plots • Useful for displayingfunctions of 2 variables or to visualize large matrices • Given a function f(x,y) of two variables: • We can plot the function z as a mesh or surface plot
Calculating xx Height = Length of y Row = Vector x
Generating xx in Matlab » x=[-1:0.5:1]; » xx=ones(length(x),1)*x xx = -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000
Calculating yy Length = Length of y Column = y Transpose
Generating yy in Matlab » y=[-1:0.5:1]; » yy=y'*ones(1,length(y)) yy = -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 0 0 0 0 0 0.5000 0.5000 0.5000 0.5000 0.5000 1.0000 1.0000 1.0000 1.0000 1.0000
Find xx & yy Using Meshgrid » [xx,yy] = meshgrid(x,y) xx = -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 yy = -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 0 0 0 0 0 0.5000 0.5000 0.5000 0.5000 0.5000 1.0000 1.0000 1.0000 1.0000 1.0000
Find z • Find z using element by element computations » z=xx.*exp(-xx.^2-yy.^2) z = -0.1353 -0.1433 0 0.1433 0.1353 -0.2865 -0.3033 0 0.3033 0.2865 -0.3679 -0.3894 0 0.3894 0.3679 -0.2865 -0.3033 0 0.3033 0.2865 -0.1353 -0.1433 0 0.1433 0.1353
Mesh Plot z » mesh(x,y,z) • Finer increments of x and y will smooth the surface
Mesh for a Larger x & y • Create a new mesh plot complete with labels » x =[-2:0.2:2]; » y =[-2:0.2:2]; » [xx,yy]=meshgrid(x,y); » z=xx.*exp(-xx.^2-yy.^2); » mesh(x,y,z) » title('Larger Mesh'); » xlabel('X Data'); » ylabel('Y Data'); » zlabel('z=xx.*exp(-xx.^2-yy.^2)');
Surface Plot of z » surf(x,y,z) • Plots the colored parametric surface where color is proportional to surface height
Pcolor » pcolor(x,y,z) • pseudocolor or "checkerboard" plot of matrix • The values of the elements specify the color in each cell of the plot
Number of Contour Lines Contour Plots • contour plot of matrix where z contains heights above a plane » contour(x,y,z,16); » title('Contour');
Displaying Contour Heights • To write the values identifying the heights: » cs=contour(x,y,z,16); » clabel(cs); » title('Contour Heights');
Meshc Contour Plots • meshc is same as mesh except that a contour plot is drawn beneath the mesh » meshc(x,y,z) • Only works for surfaces defined on a rectangular grid
Adding a Colorbar • colorbar adds a vertical line (color scale) to show the contour plots
3D Interpolation • Rough or scattered data can be interpolated using mesh • The original data is plotted as a mesh by: » x=[-3:3]; y=[1:5]; » [xx, yy]=meshgrid(x,y); » z= xx + yy; » mesh(x,y,z); » title('Original Mesh Grid'); » xlabel('X Data'); ylabel('y Data'); » zlabel('z = xx + yy');
Mesh of Rough Data • Original Course Surface where: x = [-3:3] y = [1:5] z = xx+yy
Interpolation of Data • The original mesh from the data is can be improved by creating interpolated values using griddata: » xi=[-3:0.5:4]; % Interpolated x axis » yi=[ 0:0.2:5]; % Interpolated y axis » [xxi,yyi]=meshgrid(xi,yi); » % zi = interpolated values » zi=griddata(xx,yy,z,xxi,yyi); » mesh(xxi,yyi,zi); % Better surface » title('Interpolated Mesh Grid'); » xlabel('X Data'); ylabel('y Data'); » zlabel('z = xx + yy');
3D Interpolation Plot • Interpolated Smooth Surface where: xi = [-3:0.5:4] yi = [ 0:0.2:5]