MATLAB Answers

convert plot3 to contour plot

19 views (last 30 days)
MOOSE on 17 Jan 2020
Answered: Star Strider on 17 Jan 2020
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
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
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);
contourf(X, Y, Z)
The griddata function had problems with your original ‘a’ matrix, so I created one it would work with.




Community Treasure Hunt

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

Start Hunting!