finding consecutive numbers in an array

5 views (last 30 days)
Huseyin
Huseyin on 31 Jan 2016
Edited: Jan on 31 Jan 2016
Hi,
I'am trying to find minimum 320 consecutive numbers in an array. Is there any simple way to find it?
  2 Comments
Jan
Jan on 31 Jan 2016
Edited: Jan on 31 Jan 2016
Please explain the term "consecutive numbers" in an example. Do you mean, that the difference between two neigboring numbers is +1? Or is -1 accepted also? Do you mean integer values in a double array? Which result is wanted? The first index? What exactly is "minimum 320 numbers"? I assume it is a block of 320 or more elements?
Huseyin
Huseyin on 31 Jan 2016
Assume that I have an array like;
a= [8 9 10 11 15 16 17 180 181 182 183 184 185 190]
In that 1x14 double, I want to find the beginning and end of the consecutive 6 numbers. Answer should be like it begins at 180 and ends with 185

Sign in to comment.

Answers (1)

Jan
Jan on 31 Jan 2016
Edited: Jan on 31 Jan 2016
Data = randi([1, 10], 1, 1e6); % Any test data
Len = 5; % 320 in your case
[B, N, Index] = RunLength(diff(Data));
Match = find(N >= Len & B == 1);
% Output to control results:
for k = 1:numel(Match)
iResult = Index(Match(k));
fResult = iResult + N(Match(k)) - 1;
disp(Data(iResult:fResult));
end
  2 Comments
Huseyin
Huseyin on 31 Jan 2016
Edited: Huseyin on 31 Jan 2016
I set your RunLength package to the path but Matlab gives a message like 'too many output arguments'. It gives the same message for your example also.
Jan
Jan on 31 Jan 2016
Edited: Jan on 31 Jan 2016
Please post a complete copy of the error message.
Start RunLength once without input arguments for a compilation of the C-code. If you do not have a C-compiler, use the slower RunLength_M.

Sign in to comment.

Categories

Find more on Performance and Memory 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!