2013-04-03 143 views
-1

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

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

回答

3

这听起来像你想要的东西,如史密斯沃特曼(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)。

相关问题