-1

2 つの小さい文字列 (A) と非常に大きな文字列 (B) があるとします。B で A の一致文字列を見つけたいのですが、完全一致には興味がありません。つまり、一致する文字列を見つけるためのしきい値を検討したいと思います。したがって、この場合、A の 2 ~ 3 要素が B で選択された文字列と正確に一致しないという文字列を受け入れます。私が知っているように、matlab の文字列一致コードのほとんどは正確な一致を見つけるだけだからです。

さらに、1 つの一致だけではなく、一連の文字列が生成されるようにしたいと考えています。たとえば、たとえば 2 ~ 3 個の不一致で A と一致する 10 個の文字列を提供する必要があります。

4

1 に答える 1

3

Bioinformatics Toolbox に実装されている Smith-Waterman ( http://en.wikipedia.org/wiki/Smith%E2%80%93Waterman_algorithm ) アルゴリズムのようなものが必要なようです。

それが思いどおりにならない場合は、レーベンシュタイン距離を使用して A を B の部分文字列と比較することにより、独自のマッチング ルーチンを多少非効率的に作成できる可能性があります。Matlab Central にはレーベンシュタイン距離のパッケージがいくつかあります (例: https://www.mathworks.com/matlabcentral/fileexchange/17585-calculation-of-distance-between-strings )。

于 2013-04-03T02:50:52.960 に答える