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.

Community Treasure Hunt

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

Start Hunting!