Choosing specific area of points from xscale in plot

17 views (last 30 days)
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
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
Tom Pesek on 11 Mar 2015
Thanks for reaction Giorgos,
the thing is, that my x values are in datenum format.
the situation is like this:
and I need to get x values (red marked) to use them for ploting another signal.
So far, i did it like this:
t1 = datenum('2015-01-01 22:39:00','yyyy-mm-dd HH:MM:SS');
t2 = datenum('2015-01-01 22:59:00','yyyy-mm-dd HH:MM:SS');
m=find(time>t1 & time<t2);
myplot=plot (time(m),my_signal(m))
so now i need to mark this area and backwards recived equal cells in "time" vector.
I hope you can get the point :-/...?
  5 Comments
Tom Pesek
Tom Pesek on 12 Mar 2015
yesss, creating variable works perfect!
thank you!!
i will keep the gradient for later too :)!

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!