Plotting a 2D matrix

92 ビュー (過去 30 日間)
Alok Pathak
Alok Pathak 2014 年 6 月 27 日
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 ;
end
I get the error Vectors are not of similar lengths. Please Help. Many thanks
Regards
  3 件のコメント
Alok Pathak
Alok Pathak 2014 年 6 月 27 日
The Idea is this. I have recorded a vector of length 42. I have done this process for 300 times. I want to show how the vector changes while i record the vector 300 times. I wanted to show a 3d plot that carries this information.
The vectors are of similar lengths. 1: 42 and M(i,1:42) are both 1*42 double.
Regards
Gnaneswar Nadh satapathi
Gnaneswar Nadh satapathi 2014 年 6 月 27 日
plot it as
surf(M)

サインインしてコメントする。

採用された回答

Andrei Bobrov
Andrei Bobrov 2014 年 6 月 27 日
編集済み: Andrei Bobrov 2014 年 6 月 27 日
s = size(M);
[z,x] = ndgrid(1:s(1),1:s(2));
data = permute(num2cell(cat(3,x,M,z), 2),[3,2,1]);
plot3(data{:});
or
s = size(M);
[x,z] = ndgrid(1:s(2),1:s(1));
plot3(x,M.',z);

その他の回答 (1 件)

David Sanchez
David Sanchez 2014 年 6 月 27 日
Maybe you are thinking no something like this:
M=rand(300,42); % your data here
[xx, yy] = meshgrid(1:42,1:300);
plot3(xx,yy,M,'*')

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by