Fast r-contiguous matching (based on location similarities)

2 次查看(过去 30 天)
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.

采纳的回答

BigBang
BigBang 2015-12-8

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by