Hello
I am interested in finding out the time between two points in a graph (x-axis is the time, y-axis is the quantity of interest). For testing my logic, I'm using a sinusoidal wave to see if I get the correct responses. In the sinusoidal wave defined below, I'm interested in calculating the starting and ending x-coordinate when the y-axis value is less than 0.4.
t= [0:0.1:2*pi];
a=sin(t);
figure;
h=plot(t,a);
for i=1:max(t)
y=get(h,'ydata');
if a < 0.4
start=get(h,'xdata');
if a > 0.4
fin=get(h,'xdata');
end
end
This is an infinite loop, which doesn't give any output. I'm not really familiar with matlab and am not able to figure out how to get the start and fin values above.
Any help is appreciated.
Thanks!

 채택된 답변

KSSV
KSSV 2016년 6월 29일

0 개 추천

t= [0:0.1:2*pi];
a=sin(t);
figure;
h=plot(t,a);
% Get y data
y=get(h,'ydata');
% get x data
x=get(h,'xdata');
% find indices less then 0.4 in y
idx = find(y<0.4) ;
% get values of y less then 0.4
y1 = y(idx) ;
% get time for respective y values
x1 = x(idx) ;
% min time of 0.4
xmin = min(x1)
% max time of 0.4
xmax = max(x)

댓글 수: 2

Mridul Garg
Mridul Garg 2016년 6월 29일
Thank you so much for this. However, I want to generalize this function, in the sense that if there are two instances of the curve going below 0.4 and coming up above 0.4, I would want the start and end indices of both instances?
KSSV
KSSV 2016년 6월 29일
Can be done.....doc find..

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Aleksandra Ksiezyk
Aleksandra Ksiezyk 2020년 1월 20일

0 개 추천

hallo,
I came across this post because I am looking for something similar.
do you know how one can calculate the length of the x axis (or a curve) for a given condition? e.g. idx = find (y <0.4 & y> 0.3). I have a plot describing the temperature of time (24h) and I would like to calculate how much time during the day the temperature is from 17.5 to 18.5 C?
cheers,
Ola

카테고리

도움말 센터File Exchange에서 Fit Postprocessing에 대해 자세히 알아보기

질문:

2016년 6월 29일

답변:

2020년 1월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by