how to find out the time interval between two consecutive events?
6 ビュー (過去 30 日間)
古いコメントを表示
sir, i need to find out the time interval between two consecutive events. i have around 4000 data with increasing numbers but not consecutive. i have to find out the events of 4 consecutive numbers or more and the gap between two consecutive events. how is it possible?
1 件のコメント
採用された回答
Guillaume
2014 年 12 月 13 日
This would work:
A = [1,2,5,6,7,8,9,20,21,22,30,31,32,33, 34,35, 40,41,42,43,44];
runs = diff(A) == 1; %which numbers are part of a run
edges = diff([0 runs 0]); %find edges of run (1 = start, -1 = end)
startruns = find(edges == 1); %get indices of start of runs == indices in A
endruns = find(edges == -1); %get indices of end of runs == indices in A
lengthruns = endruns - startruns; %get lengths of runs
startruns = startruns(lengthruns >= 4); %only keep runs of 4 or more
endruns = endruns(lengthruns >= 4); %only keep runs of 4 or more
groupdiff = A(startruns(2:end)) - A(endruns(1:end-1))
その他の回答 (1 件)
dpb
2014 年 12 月 13 日
Check out
Those are two I recall from File Exchange, there may be others as well suited to your particular problem...
3 件のコメント
dpb
2014 年 12 月 13 日
Did you not look at the linked-to File Exchange routines? I believe either of them will do the job for you...
Without extensive testing, I believe
>> d=find(diff([0 A])>1);
>> d(diff(d)>3)
ans =
3 11
>>
are the locations in question, but I suspect the two submittals are more robust.
参考
カテゴリ
Help Center および File Exchange で Vector Fields についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!