matlab中的近似字符串匹配

时间:2013-04-03 01:54:23

标签: matlab computer-vision signal-processing

假设我有两个小(A)和非常大的字符串(B)。我想在B中找到A的匹配字符串,但我对完全匹配不感兴趣。换句话说,我想考虑一个阈值来找到匹配字符串。因此,在这种情况下,我接受A的2-3个元素与B中所选字符串不完全匹配的字符串。所以,我的问题是如何在matlab中考虑这种近似?因为,据我所知,matlab中的大多数字符串匹配代码只能找到完全匹配。

此外,我希望它产生一堆字符串而不是一个匹配。例如,它应该提供,例如10个字符串,与A匹配,例如2-3不匹配。

1 个答案:

答案 0 :(得分:3)

这听起来像你想要的东西,比如Smith-Waterman(http://en.wikipedia.org/wiki/Smith%E2%80%93Waterman_algorithm)算法,它在生物信息学工具箱中实现。

如果那不完全符合你的要求,你可以通过使用Levenshtein距离将A与B的子串进行比较来编写自己的匹配程序。在Matlab Central上有几个Levenshtein距离包(例如https://www.mathworks.com/matlabcentral/fileexchange/17585-calculation-of-distance-between-strings)。