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 commentaires

pietro
pietro le 27 Juin 2014
how can you make a plot of vectors with different sizes?
Alok Pathak
Alok Pathak le 27 Juin 2014
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 le 27 Juin 2014
plot it as
surf(M)

Connectez-vous pour commenter.

 Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 27 Juin 2014
Modifié(e) : Andrei Bobrov le 27 Juin 2014

3 votes

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);

Plus de réponses (1)

David Sanchez
David Sanchez le 27 Juin 2014

0 votes

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,'*')

Catégories

En savoir plus sur Line Plots dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by