3D surface plot from imported 2D excel array

10 visualizaciones (últimos 30 días)
joe pearson
joe pearson el 2 de Mzo. de 2018
Editada: joe pearson el 3 de Mzo. de 2018
New to Matlab. Im sure this is answered somewhere already, but I can't manage to find it; I have a 2D array of experimental data tabulated in excel. 1st row and column are varied parameters, and I measure the corresponding amplitudes in the matrix. Importing the table to Matlab is simple. I would then like to plot a 3D surface of the 1st row (x) vs. 1st column (y), for the amplitudes in the matrix. This is very straightforward in excel, but the plots look terrible. Thanks in advance for the help.

Respuesta aceptada

Star Strider
Star Strider el 2 de Mzo. de 2018
Try this:
[D,S,R] = xlsread('ExampleArray.xls');
figure(1)
ribbon(D(:,1), D(:,2:end))
grid on
[X,Y] = meshgrid((1:size(D,2)-1), D(:,1));
Z = D(:,2:end);
figure(2)
surf(X, Y, Z)
grid on
  8 comentarios
joe pearson
joe pearson el 3 de Mzo. de 2018
Editada: joe pearson el 3 de Mzo. de 2018
That's almost what I wanted. I finally figured out how it works. Thanks again for all the help!! This is the code I am using, in case the next person to come along finds it useful;
[D,S,R] = xlsread('ExampleArray.xls');
Z = D(2:end,2:end);
M = max(max(Z));
figure(1)
X = D(1,2:end);
Y = D(2:end,1);
x1 = min(X);
x2 = max(X);
y1 = min(Y);
y2 = max(Y);
surf(X,Y,Z)
axis manual
xlim([x1 x2])
ylim([y1 y2])
colormap parula
shading interp
colorbar
caxis([0 M])
%view(2)
uncommenting the view(2) makes a nice psuedo 3D view
Star Strider
Star Strider el 3 de Mzo. de 2018
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating, Deleting, and Querying Graphics Objects en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by