plotting 3-D data in 2-D

Hi again,
I have a 3D matrix (test=rand(3,3,4)) and I'm trying to plot each 2D entry through the third dimension [i.e. plot nine lines: (1,1,:),(1,2,:) and so on]. I'm not exactly sure how to do this, and can't get it to work with plot or plot3.
Any ideas?
Thanks,
Don

 Réponse acceptée

Sean de Wolski
Sean de Wolski le 15 Juin 2011

1 vote

test = repmat(magic(3),[1 1 4]); %each vector into the third dimension will be the same (so we can verify accuracy)
test2 = reshape(permute(test,[3 2 1]),size(test,3),[]); %permute it and reshape it so that each column represents one vector into the third dimension
plot(test2) %plot it

5 commentaires

Donald
Donald le 15 Juin 2011
Thank you for your help! As you probably have figured, I'm just starting out with Matlab.
Donald
Donald le 15 Juin 2011
Just a quick question:
Why is the [] necessary in the reshape command? What exactly is it doing?
Sean de Wolski
Sean de Wolski le 15 Juin 2011
The [] indicates that we don't know how many entries are going to be in that dimension. So reshaping a 4x4 matrix into and 8x2 could be done with either
reshape(A,8,2) or reshape(A,[],2) or reshape(A,8,[]). In the above case there will be 9 columns (3x3) but I assume your test example is probably not the real size of your data so I generalized. It'll work with any sized matrix.
Donald
Donald le 21 Juin 2011
I've been fiddling around with this code and was wondering, is there a way to print the data from each row on a separate graphs? So for this 3x3 matrix have the output 3 charts with three lines each.
Sean de Wolski
Sean de Wolski le 21 Juin 2011
doc subplot
and then a for loop to do the work.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by