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

 采纳的回答

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 个评论

Thank you for your help! As you probably have figured, I'm just starting out with Matlab.
Just a quick question:
Why is the [] necessary in the reshape command? What exactly is it doing?
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.
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.
doc subplot
and then a for loop to do the work.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Annotations 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by