Detect sequence of numbers in array

41 ビュー (過去 30 日間)
Brendan Lyden
Brendan Lyden 2017 年 3 月 17 日
回答済み: Jan 2017 年 3 月 17 日
I want to be able to detect when a sequence of numbers starts and finishes in an array. For example, if I have
A = [1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0];
B = [1 1 0 0];
Can I determine whether A contains B and if A does contain B, get the index of A that B starts and stops (so 7 and 18 here)
Thank you

採用された回答

the cyclist
the cyclist 2017 年 3 月 17 日
編集済み: the cyclist 2017 年 3 月 17 日
Even though these are not strings, you can use strfind as the key component to doing what you want
strfind(A,B)
will find the starting indices where B is embedded in A.
It is not perfectly clear to me how you want to handle repetitions, or repetitions with gaps, etc. So, maybe this is enough to get you started?

その他の回答 (1 件)

Jan
Jan 2017 年 3 月 17 日
The sequence is found at the positions 7, 11 and 15. If you search for "7, 18", I guees you want:
Index = strfind(A, B);
Result = [Index(1), Index(end) + length(b) - 1];
A fallback is required, when no match is found.

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by