Fast r-contiguous matching (based on location similarities)
3 次查看(过去 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.
0 个评论
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!