Plotting a 2D matrix

549 views (last 30 days)
I need to plot a matrix M which is 300*42 in size. On the X axis I need to plot 1:42. On the Y Axis I need to plot the value corresponding to the 42 values. On the Z axis I need to plot the 1:300 value.
I tried using the plot3 function in a loop like this and I wouldnt get it right :
for i = 1:300
plot( 1:42, M(i, 1:42), 1:i);
hold on;
drawnow ;
I get the error Vectors are not of similar lengths. Please Help. Many thanks
Gnaneswar Nadh satapathi
Gnaneswar Nadh satapathi on 27 Jun 2014
plot it as

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 27 Jun 2014
Edited: Andrei Bobrov on 27 Jun 2014
s = size(M);
[z,x] = ndgrid(1:s(1),1:s(2));
data = permute(num2cell(cat(3,x,M,z), 2),[3,2,1]);
s = size(M);
[x,z] = ndgrid(1:s(2),1:s(1));

More Answers (1)

David Sanchez
David Sanchez on 27 Jun 2014
Maybe you are thinking no something like this:
M=rand(300,42); % your data here
[xx, yy] = meshgrid(1:42,1:300);

Community Treasure Hunt

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

Start Hunting!