How do I extract points from a plot for further computation?

4 views (last 30 days)
I have this set of points: (time, voltage). I plotted the data and now I need to pick 2 time points between which I need to make an average of voltage values. I tried using this:
[x,y] = ginput(2)
But it is not getting me time in the x vector. Any suggestion? Thank you for your time and help!
  2 Comments
Matthew Eicholtz
Matthew Eicholtz on 12 Oct 2017
What is it giving you in the x vector? I just tried it and got what I expected from ginput.
Andreia dos Santos
Andreia dos Santos on 12 Oct 2017
I just got this, for example: [0.750900921658986;1.385002304147465]. I could select anything, even if it was out of the plotted curve...

Sign in to comment.

Accepted Answer

Matthew Eicholtz
Matthew Eicholtz on 12 Oct 2017
Try using the Brush/Select Data tool. Here's an example...
Generate and plot some random data:
t = 1:1000;
x = randn(size(t))+sin(0.05*t);
plot(t,x);
Now click on the Brush/Select Data tool in the figure:
Draw a rectangle around the data of interest by click-and-drag:
Right-click on the selected data and choose "Create Variable" in the popup menu:
Follow the prompt to name the variable that stores the selected data, and you're good to go. The output in this example would be an Nx2 array in which the first column contains the x-axis data (time) and the second column contains the y-axis data (called x here).
Hope this helps.
  1 Comment
Andreia dos Santos
Andreia dos Santos on 12 Oct 2017
Thank you! I actually needed the variables created by the brush to be further used on a script, but I found a way to make that happen. I named my plot as "f" and after plotting my data, I wrote:
waitfor(f);
Then I used the brush and named the variable created. I closed the plot figure, and the script continued working with the variable created.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!