User:Arjun G. Menon/Levenshtein distance

From mediawiki.org

Code for calculating Levenshtein distance in MATLAB.

function [dist, D] = wdist(s, t)
%Computers the Levenshtein distance between two strings

m = length(s);
n = length(t);

if (m==0)
    dist = n;
    return
elseif (m==0)
    dist = n;
    return
end

% init matrix
D(m+1,n+1) = 0;

for i = 1:m+1
    D(i, 1) = i-1;
end

for j = 1:n+1
    D(1, j) = j-1;
end


for j = 2:n+1
    for i = 2:m+1
        if (s(i-1)==t(j-1))
            D(i, j) = D(i-1, j-1);
        else
            D(i, j) = min([
                D(i-1, j) + 1,
                D(i, j-1) + 1,
                D(i-1,j-1)+ 1]);
        end
    end
end

dist = D(m+1,n+1);

end