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?

Answers (1)

KSSV
KSSV on 5 Feb 2021
Edited: KSSV on 5 Feb 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 Comments

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?
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.
Yes you are right.....I have edited the code, try now. If not working share the data.

Sign in to comment.

Products

Release

R2020a

Asked:

on 5 Feb 2021

Commented:

on 5 Feb 2021

Community Treasure Hunt

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

Start Hunting!