How to get brushed data point index from Plot?

17 views (last 30 days)
The following linked post was incredibly helpful for me but I would like to know how to obtain the indicies of the brushed data. I'm not sure why, but the size of Pos and the size of brush are different. I want to obtain the indicies in Pos of the brushed data. Thank you.
Handle = plot3(Pos(:,1),Pos(:,2),Pos(:,3), 'o');
axis equal;
view(0,90)
brush on
Select the required data and run the following to get the brushed points:
xd = get(Handle, 'XData');
yd = get(Handle, 'YData');
zd = get(Handle, 'ZData');
brush = get(Handle, 'BrushData');
brushed_x = xd(logical(brush));
brushed_y = yd(logical(brush));
brushed_z = zd(logical(brush));
figure, plot3(brushed_x, brushed_y, brushed_z, 'o');

Accepted Answer

Adam Danz
Adam Danz on 31 Jul 2021
Edited: Adam Danz on 3 Aug 2021
Continuing from your code...
brushedPoints = [brushed_x(:), brushed_y(:), brushed_z(:)];
dist = pdist2([xd(:),yd(:),zd(:)], brushedPoints);
[~, idx] = min(dist)
idx(i) is the index for brushedPoints(i,:).

More Answers (0)

Categories

Find more on Graphics Object Properties in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!