convert plot3 to contour plot

9 views (last 30 days)
MOOSE
MOOSE on 17 Jan 2020
Answered: Star Strider on 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?

Answers (1)

Star Strider
Star Strider on 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.

Categories

Find more on Contour Plots in Help Center and File Exchange

Products


Release

R2017a

Community Treasure Hunt

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

Start Hunting!