Borrar filtros
Borrar filtros

Plot a 3D matrix (1 dependent & 2 independent variables)

34 visualizaciones (últimos 30 días)
Em
Em el 4 de En. de 2021
Editada: Cris LaPierre el 4 de En. de 2021
I have a matrix with 2 independent variables (X and y) which have given data. I want to plot this data with X and Y (in the X and Y dimensions) and the corresponding data point in the Z direction so that it appears like a contour map with the independent variables giving the location and the dependent giving the magnitude. Does anyone have an idea how I could do this? Cheers

Respuesta aceptada

Cris LaPierre
Cris LaPierre el 4 de En. de 2021
You could use mesh or surf. As an example, consider X and Y verctors, with Z defined as sin(X) + cos(Y).
X = linspace(0,2*pi,20);
Y = linspace(0,pi,10);
[X,Y] = meshgrid(X,Y);
Z = sin(X) + cos(Y);
surf(X,Y,Z)
  9 comentarios
Cris LaPierre
Cris LaPierre el 4 de En. de 2021
Editada: Cris LaPierre el 4 de En. de 2021
Part of the issue with your visualization is that there are so few points. It makes it hard to see. If changing alpha works for you, that's good. Another option might be to use interpolation to increase the number of points, giving more of a surface appearance to your figure. this can be done with scatteredInterpolant. Just be careful, as interpolation might not result in accurate results.
load lowresmesh.mat mlowr
% Sortrows so
mlowr = sortrows(mlowr,[1 2 3]);
F = scatteredInterpolant(mlowr(:,1),mlowr(:,2),mlowr(:,3));
[xq,yq] = meshgrid(linspace(min(mlowr(:,1)),max(mlowr(:,1)),15),linspace(min(mlowr(:,2)),max(mlowr(:,2)),9));
zq = F(xq,yq);
surf(xq,yq,zq,'FaceColor','interp')
Em
Em el 4 de En. de 2021
Thank you!! This looks exactly as I hoped.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.

Productos


Versión

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by