How to make a surface plot given an NxMxK matrix?

I have a matrix that is 100x2x10 double, which represents 10 timesteps each with two columns of 100 data points each (the first column is repeated data that just marks the location where the second piece of data is from). I want to make a surface plot using this data to show the change over time. What would be the best way to go about this?

Respuestas (1)

KSSV
KSSV el 5 de Feb. de 2021
Editada: KSSV el 5 de Feb. de 2021
Let A be your 100*2*10 data matrix.
[m,n,p] = size(A) ;
for i = 1:p
x = A(:,1,i) ; y = A(:,2,i) ;
nx = length(unique(x)) ; ny = length(unique(y)) ;
X = reshape(x,nx,ny) ;
Y = reshape(y,nx,ny) ;
mesh(X,Y) ;
drawnow
end

4 comentarios

Paul Hurley
Paul Hurley el 5 de Feb. de 2021
I plugged this in and I am getting an error "Size arguments must be integer scalars" for the "X = reshape(x,nx,ny) ;" line. Do you know what is the problem?
KSSV
KSSV el 5 de Feb. de 2021
Share your data.
Paul Hurley
Paul Hurley el 5 de Feb. de 2021
From the code you gave, I see that nx and ny are both 100x1 double, which I think is where the issue might be coming from.
KSSV
KSSV el 5 de Feb. de 2021
Yes you are right.....I have edited the code, try now. If not working share the data.

Iniciar sesión para comentar.

Productos

Versión

R2020a

Etiquetas

Preguntada:

el 5 de Feb. de 2021

Comentada:

el 5 de Feb. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by