Choosing specific area of points from xscale in plot
Show older comments
Hello everyone, I'd like to know, if there is any tool, which helps me to choose certain area from plot, returning the range of chosen area?
more specific, I have signal with 5,000,000 samples (let it be from 1 to 5M). I want to plot graph and choose the area, which I am interrested in and I need to get the range of x scale.
Example: I need to work with 10 minutes of data near the half. So I need to mark this area and recived vector, containing numbers for example from 2,458,356 to 2,534,675.
Do you have any ideas? Thanks for any help
Tom
Answers (2)
Giorgos Papakonstantinou
on 11 Mar 2015
Edited: Giorgos Papakonstantinou
on 11 Mar 2015
Hallo Tom. One way is to use brush/Select Data tool:

(apologize for the bad resolution).
If you want better accuracy you can do:
x = get(myplot, 'Xdata');
y = get(myplot, 'Ydata');
idx = x>=2458356 & x<=2534675; % logical indexing of the "area" you are interested
sampleX = x(idx); % x values of the area of interest
sampleY = y(idx); % y values of the area of interest.
where myplot is the handle for your plot.
i.e.
myplot = plot(..., ...)
Tom Pesek
on 11 Mar 2015
5 Comments
Giorgos Papakonstantinou
on 11 Mar 2015
What is time? A cell with timestamps, a vector with numbers?
I am sorry Tom, I didn't understand this: so now i need to mark this area and backwards recived equal cells in "time" vector.
Tom Pesek
on 11 Mar 2015
Giorgos Papakonstantinou
on 11 Mar 2015
Edited: Giorgos Papakonstantinou
on 11 Mar 2015
If you use the brush tool you can press right click and you will find an option Create variable. If you select this it will create variable in the workspace with x,y data that you have selected with brush.
If you are trying to isolate the plateau. For this you have to find a criterion. A criterion could be the numerical gradient.
tol = 0.5;
idx = abs(gradient(my_signal,time)> tol;
In this way you can target the values where you have a sudden change in your data. Thus, the beginning and the end of the plateau. You then can take the range in between for your time and my_signal variables.
Tom Pesek
on 12 Mar 2015
Giorgos Papakonstantinou
on 12 Mar 2015
My pleasure!
Categories
Find more on Dates and Time 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!