Fast r-contiguous matching (based on location similarities)

2 views (last 30 days)
Assume that we have 2 equal size binary.
A=101011110000
B=000010101111
How can we check their "R" contiguous matching based on similar location?
For example if we set r=4 then the result will be false since there is no 4 contiguous similarities of locations. Both strings have 0000 or 1111 or 1010 but they are not in similar location .
However if we set :
A=1010111101111
B=1100101011111
The result will be true since the last 4 char (R) in both strings are equal to "1111".
What is the fastest way to do that. I found a fast solution in : http://www.mathworks.com/matlabcentral/answers/257051-fast-r-contiguous-matching
bin = 2.^(0:r - 1);
A2 = filter(bin, 1, A == '1');
B2 = filter(bin, 1, B == '1');
bool = any(ismember(A2(r:end), B2(r:end))); % need to trim first r-1 entries
But in this solution checking similarities is not based on location.

Accepted Answer

BigBang
BigBang on 8 Dec 2015

More Answers (0)

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!