convert plot3 to contour plot

5 vues (au cours des 30 derniers jours)
MOOSE
MOOSE le 17 Jan 2020
Hi,
I have a novice question in matlab.
Say that I have some matrix
a = [1 2 3; 4 5 6; 7 8 10; 11 12 13]
I can plot this in 3d where column 1 is the x-axis, column 2 is the y-axis, and column 3 is the z-axis, by writing
plot3(a(:,1),a(:,2),a(:,3),'.').
However, I also want to make a contour plot where I have column 1 along the x-axis, column 2 along the y-axis, and column 3 represents the heights above the z = 0 plane. To do this I have to reshape my data somehow so that I can write something like
contourf(X,Y,Z).
How can I do this efficiently?

Réponses (1)

Star Strider
Star Strider le 17 Jan 2020
Use the griddata function:
a = randi(9, 10, 3);
x = a(:,1);
y = a(:,2);
z = a(:,3);
xv = linspace(min(x), max(x), 6);
yv = linspace(min(y), max(y), 8);
[X,Y] = meshgrid(xv, yv);
Z = griddata(x,y,z,X,Y);
figure
contourf(X, Y, Z)
colorbar
The griddata function had problems with your original ‘a’ matrix, so I created one it would work with.

Catégories

En savoir plus sur Contour Plots dans Help Center et File Exchange

Produits


Version

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by