How to Create a Surface Plot from Table Data Imported from Excel

75 views (last 30 days)
I am trying to create a surface plot for the excel table shown in the image below using the "surf" function. TetherK and TetherC are my inputs. Power is my output (the white cells). I can't seem to get the surf fucntion to work. I imported the data and have a table in MATLAB for TetherK, TetherC, and my Output (shown below). What do I need to do so that I can make a surface plot from tables in MATLAB?

Accepted Answer

Scott MacKenzie
Scott MacKenzie on 3 Mar 2022
Edited: Scott MacKenzie on 3 Mar 2022
Given some test data (attached) similar to yours...
... a surface plot can be created thus...
M = readmatrix('testdata.xlsx');
[X,Y] = meshgrid(M(1,2:end),M(2:end,1));
Z = M(2:end,2:end);
surf(X,Y,Z);
The test data are random values. Hopefully, your plot will look more interesting.
  1 Comment
Michaela Byrne
Michaela Byrne on 4 Mar 2022
That worked, thanks! I'm including pictures of what I did in MATLAB to get it to work in case anyone else has a similar question to what I had and wants to see what I did.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 3 Mar 2022
x = PlotTestS1.TetherK;
y = PlotTestS2.TetherCn
z = table2array(PlotTestS3) ;
surf(x, y, z, 'edgecolor', 'none')

Community Treasure Hunt

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

Start Hunting!

Translated by