How do I select a region on a 3D plot and extract the indices of the enclosed points?

16 views (last 30 days)
I have a series of x, y, and z data (let's call them x_data, y_data, z_data). I make a 3D plot using imagsc.
Now I want to make the resulting figure interactive such that I can select regions of this plot with my mouse and produce a 2D cut from my 3D image.
Right now I have a separate code, shown below, that does this. For examlple, to get a y-z cut at a certain value of x: I choose an x value, get an appropriate number of indices ("width") around that, get the corresponding z values, average them, and plot them against the corresponsing y values.
x = 600;
width = 50;
x_cut = find(x+width/2>x_data & x-width/2<x_data);
z_cut = z_data(:,x_cut(1):x_cut(end));
z_cut_mean = mean(z_cut, 2);
figure; plot(y_data, z_cut_mean)
But I want to make this process an interactive one right on the 3D graph itself. I was thinking that if I could get the indices out with a selection tool somehow, I'd be able to use the code above from line 4 perhaps. Or somethig like that.
What is the best way to go baout doing somethig like this? Should I be looking itno making GUI's or is there a simpler way of extracting the indices I need from the graph?
Thanks!

Answers (1)

darova
darova on 2 Jul 2020
Here is the script that sould be helpfull

Community Treasure Hunt

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

Start Hunting!