Creating Surface Plot from a Matrix with 3 Columns

How do you create a surface plot using a matrix with 3 columns in Matlab? The first column would be the x-values, the second column would be the y-values, and the third column would be the z-values for the surface plot.

3 comentarios

KSSV
KSSV el 30 de Jul. de 2018
We can help on getting data. Attach your data. We need to know whether your data is structured or unstructured.
I am generating data from a loop. Here is a simple example from the loop:
0.5000 0.5000 66.9052
0.5000 1.0000 57.3591
1.0000 0.5000 76.7805
1.0000 1.0000 66.9052
KSSV
KSSV el 30 de Jul. de 2018
More data is needed.

Iniciar sesión para comentar.

 Respuesta aceptada

KSSV
KSSV el 30 de Jul. de 2018
A = [0.5000 0.5000 66.9052
0.5000 1.0000 57.3591
1.0000 0.5000 76.7805
1.0000 1.0000 66.9052] ;
x = A(:,1) ; y = A(:,2) ; z = A(:,3) ;
%%structured
xi = unique(x) ; yi = unique(y) ;
[X,Y] = meshgrid(xi,yi) ;
Z = reshape(z,size(X)) ;
figure
surf(X,Y,Z)
%%unstructured
dt = delaunayTriangulation(x,y) ;
tri = dt.ConnectivityList ;
figure
trisurf(tri,x,y,z)

11 comentarios

Sarah
Sarah el 30 de Jul. de 2018
Thank you. What is the "unstructured" section doing/for?
KSSV
KSSV el 30 de Jul. de 2018
YOu can plot in either of the ways. Thanks is accepting the answer..:)
Sarah
Sarah el 30 de Jul. de 2018
How do you know if you are "structured" vs "unstructured"?
KSSV
KSSV el 30 de Jul. de 2018
That's why I asked for complete data....:)
If X, Y have regaular arrangement it is structured or else unstructured.
Eric
Eric el 21 de Oct. de 2018
Wonderful...thank you soooo much for this!!! I was tearing my hair out. :)
If you have n no matrix then can we draw multiple suface plot???
thank you KSSV!
Timothy Turk
Timothy Turk el 15 de Sept. de 2020
KSSV - It works with your numbers, but it chokes on mine. I get an error on reshape.
Error using reshape
To RESHAPE the number of elements must not change.
Error in Iridium_Data (line 9)
Z = reshape(z,size(X)) ;
@Timothy Turk I also encoutered the same issue. To solve this, I removed all the rows of my matrix that were repeated. You can do with the command:
B = unique(A,'rows');
Hope that will be helpful to you or anyone that will come after us.
Thank you for the answer.
KSSV how can I trisurf this matrix I used your email program it does not work.
P1=[1;0;1];
P2= [2; 3;2];
P3= [-3;1;2];
P4= [6;2;3];
MatrixP=[1 2 -3 6 ;0 3 1 2;1 2 2 3];
%%structured
[X,Y] = meshgrid(MatrixP) ;
B = unique(A,'rows');
figure
surf(X,Y,Z)
%%unstructured
dt = delaunayTriangulation(x,y) ;
tri = dt.ConnectivityList ;
figure
trisurf(tri,x,y,z)

Iniciar sesión para comentar.

Más respuestas (1)

KSSV
KSSV el 9 de Oct. de 2021
x = speed ; y = Torque ; z = bsfc ;
%%structured
xi = unique(x) ; yi = unique(y) ;
[X,Y] = meshgrid(xi,yi) ;
Z = reshape(z,size(X)) ;
figure
pcolor(X,Y,Z)
%% griddata
xi = linspace(min(x),max(x));
yi = linspace(min(y),max(y)) ;
[X,Y] = meshgrid(xi,yi) ;
Z = griddata(x,y,z,X,Y)
pcolor(X,Y,Z)

Etiquetas

Preguntada:

el 30 de Jul. de 2018

Comentada:

el 3 de Abr. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by