Sort sequencial data from an array into separate arrays
3 次查看(过去 30 天)
显示 更早的评论
Lets say I have an array
A = {3 4 5 6 8 9 12 15 16 17}
I want to get sequences such as
A1 = {3 4 5 6}
A2 = {8 9}
A3 = {12}
A4 = {15 16 17}
How would I approach such a problem. This issue is part of a larger problem I am solving in selecting data ranges from excel sheets. Any help would be nice. Thanks
0 个评论
采纳的回答
Cedric
2013-10-21
编辑:Cedric
2013-10-21
You can proceed as follows to create blocks of consecutive numbers:
A_num = [A{:}] ;
bStart = [0, find(diff(A_num)>1), numel(A)] + 1 ;
bSize = diff( bStart ) ;
A_block = mat2cell( A_num, 1, bSize ) ;
With that, you get
>> bStart
bStart =
1 5 7 8 11
>> bSize
bSize =
4 2 1 3
>> A_block
A_block =
[1x4 double] [1x2 double] [12] [1x3 double]
>> A_block{1}
ans =
3 4 5 6
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spreadsheets 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!