查找两个不等矩阵之间匹配的行(一个是另一个使用两列数据的子集)

时间:2014-06-11 17:53:51

标签: matlab match

我已经尝试过以下代码来查找匹配项,但我得到了矩阵维必须达成一致的错误。

mat = [ 8 5; 4 3; 3 5]
mat2 = [2 3; 2 3; 4 3; 4 3]

for i=1:size(mat,1)
    idx= find(mat2(:,1) == mat(i,1)& mat2(:,2) == mat(i,2)); 
end
idx= find(mat2(:,1) == mat(:,1))

我需要使用两列数据(例如x& y坐标)找到在两个不相等矩阵之间匹配的行,以便将一列数据附加到较大矩阵中的正确行。我基本上需要找到较大矩阵中的行,其中值与较小矩阵中的值匹配,以便来自较小矩阵的数据列可以附加到正确的行。

1 个答案:

答案 0 :(得分:3)

我想你想要:

>> [c,imat,imat2] = intersect( mat, mat2, 'rows')
c =
     4     3
imat =
     2
imat2 =
     4

c是匹配的行。
imat是mat中匹配行的索引 imat2是mat2

中匹配行的索引