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?

回答(1 个)

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 个评论

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.

请先登录,再进行评论。

类别

产品

版本

R2020a

评论:

2021-2-5

Community Treasure Hunt

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

Start Hunting!

Translated by