Finding longest consecutive numbers in array
27 ビュー (過去 30 日間)
古いコメントを表示
Hello everyone,
This is somewhat of a silly question but I can't seem to figure it out. If I have an array of numbers what I want is to find the location of my longest consecutive numbers for example:
my arrary = [ 1999 2000 2001 2003 2004 2005 2006 2007];
I want my output to be = [ 4 5 6 7 8]; because that's the location of my longest consecutive numbers (2003-2007). I tried to find where difference is equal to 1 but then the result is [1 1 1 0 1 1 1 1] , it doesn't take the position of the last number which is 2007 here and even if I fix that problem also I'd still have to find the locations for the longest consecutive one's for the second scenario.
I could use some help in this,
Thank You!!!
0 件のコメント
採用された回答
Stephen23
2018 年 1 月 27 日
>> V = [1999,2000,2001,2003,2004,2005,2006,2007];
>> D = diff(diff(V)==1);
>> B = find([true,D>0]);
>> E = find([D<0,true])+1;
>> [~,idx] = max(E-B);
>> B(idx):E(idx)
ans =
4 5 6 7 8
その他の回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!