Plotting a 2D matrix
186 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Alok Pathak
le 27 Juin 2014
Commenté : Gnaneswar Nadh satapathi
le 27 Juin 2014
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
Réponse acceptée
Andrei Bobrov
le 27 Juin 2014
Modifié(e) : Andrei Bobrov
le 27 Juin 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]);
plot3(data{:});
or
s = size(M);
[x,z] = ndgrid(1:s(2),1:s(1));
plot3(x,M.',z);
0 commentaires
Plus de réponses (1)
David Sanchez
le 27 Juin 2014
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,'*')
0 commentaires
Voir également
Catégories
En savoir plus sur Surface and Mesh Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!