Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 矩阵中序列的Matlab最佳匹配_Algorithm_Matlab_Edit_Distance_Levenshtein Distance - Fatal编程技术网

Algorithm 矩阵中序列的Matlab最佳匹配

Algorithm 矩阵中序列的Matlab最佳匹配,algorithm,matlab,edit,distance,levenshtein-distance,Algorithm,Matlab,Edit,Distance,Levenshtein Distance,我想在NxN矩阵中找到整数序列的最佳匹配。问题是我不知道如何提取这个最佳匹配的位置。下面的代码,我应该计算编辑距离,但我想知道在我的网格编辑距离最短的地方 function res = searchWordDistance(word,grid) % wordsize = length(word); % extract the actual size % [x ,y] = find(word(1) == grid); D(1,1,1)=0; for i=2:length(word)+1

我想在NxN矩阵中找到整数序列的最佳匹配。问题是我不知道如何提取这个最佳匹配的位置。下面的代码,我应该计算编辑距离,但我想知道在我的网格编辑距离最短的地方

function res = searchWordDistance(word,grid)

% wordsize = length(word); % extract the actual size
% [x ,y] = find(word(1) == grid);
D(1,1,1)=0;
for i=2:length(word)+1
    D(i,1,1) = D(i-1,1,1)+1;
end
for j=2:length(grid)
    D(1,1,j) = D(1,1,j-1)+1;
    D(1,j,1) = D(1,j-1,1)+1;
end
% inspect the grid for best match
for i=2:length(word)
    for j=2:length(grid)
        for z=2:length(grid)
        if(word(i-1)==grid(j-1,z-1))
            d = 0;
        else
            d=1;
        end
        c1=D(i-1,j-1,z-1)+d;
        c2=D(i-1,j,z)+1;
        c3=D(i,j-1,z-1)+1;
        D(i,j,z) = min([c1 c2 c3]);

        end
    end
end
我用这段代码(在一个更小的维度中)比较了两个字符串。 以5x5矩阵为例编辑

15 17 19 20 22
14 8  1  15 24
11 4  17 3  2
14 2  1  14 8
19 23 5  1  22

现在,如果我有一个序列
[4,1,1]
[15,14,12,14]
,应该使用算法来找到它们。第一个是完美匹配(对角线从(3,2)开始)。第二个数字位于第一列,是该序列最接近的匹配项,因为只有一个数字是错误的

你所说的
查找NxN矩阵中整数序列的最佳匹配是什么意思。首先,定义一个矩阵
5x5
,给出您的输入数组和所需的输出
最佳匹配。这将有助于我们更清楚地了解你的问题。你应该尽量用一个复杂度最低的模板来表示你的问题(如果可能的话)。你说的最接近,是指最相同的数字,还是最小的总差异?哪一个最接近于最相同的数字。我发布的算法已经做到了这一点。它告诉我们两个向量之间的距离。(将一个转换为另一个需要多少操作)。所以数字的位置也很重要。(我们可能需要在中间插入一个以使它们相同)。我想知道是否有可能在一个向量和一个2维矩阵上,而不是仅仅在两个向量上进行。