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 commentaires

KSSV
KSSV le 30 Juil 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 le 30 Juil 2018
More data is needed.

Connectez-vous pour commenter.

 Réponse acceptée

KSSV
KSSV le 30 Juil 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 commentaires

Sarah
Sarah le 30 Juil 2018
Thank you. What is the "unstructured" section doing/for?
KSSV
KSSV le 30 Juil 2018
YOu can plot in either of the ways. Thanks is accepting the answer..:)
Sarah
Sarah le 30 Juil 2018
How do you know if you are "structured" vs "unstructured"?
KSSV
KSSV le 30 Juil 2018
That's why I asked for complete data....:)
If X, Y have regaular arrangement it is structured or else unstructured.
Eric
Eric le 21 Oct 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!
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)

Connectez-vous pour commenter.

Plus de réponses (1)

KSSV
KSSV le 9 Oct 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)

Catégories

En savoir plus sur Graphics Performance dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by