Use index as coordinates in a 3D scatter plot

2 views (last 30 days)
Hi,
I have an n x n x n binary matrix, ex,
A(:,:,1) = [1 0; 0 1]
A(:,:,2) = [1 0;0 0]
I'd like to plot it as a 3D scatter plot with the position of each point determined by the indices of each 1. For example, the previous matrix would yield a scatter plot with points at (1,1,1), (2,2,1) and (1,1,2). What's the most efficient way to do this?
Thanks,

Accepted Answer

Walter Roberson
Walter Roberson on 14 Jul 2017
[r,c,p] = sub2ind(size(A), find(A));
scatter3(r, c, p)
  2 Comments
Cerina Gordon
Cerina Gordon on 14 Jul 2017
Thanks for your reply, this didn't work as written but I think you must've meant ind2sub because replacing sub2ind with that worked perfectly
Walter Roberson
Walter Roberson on 15 Jul 2017
Sorry, yes, ind2sub()... Somehow I keep typing the one when I mean the other.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!