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