新列中的值,如果两个值,如果两列匹配另外两个 Matlab

Rog*_*ier 3 matlab join matrix matching

所以我有两个很长的矩阵。下面给出了一个示例:

First_Matrix:

A = [...
1 1 1; 
1 1 2; 
1 1 3;
1 2 1; 
1 2 2; 
1 2 3;
1 3 1; 
1 3 2; 
1 3 3];
Run Code Online (Sandbox Code Playgroud)

第二矩阵

B = [...
1 1 916;
1 2 653;
1 3 114];
Run Code Online (Sandbox Code Playgroud)

我想要一个三分矩阵,它可以根据 2 个匹配矩阵的前两列中的值(相同)将第一个矩阵与第二个矩阵的第三列结合起来。

所以输出_矩阵:

C = [...
1 1 1 916; 
1 1 2 916; 
1 1 3 916; 
1 2 1 653; 
1 2 2 653; 
1 2 3 653;
1 3 1 114; 
1 3 2 114; 
1 3 3 11];
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法来做到这一点?

提前致谢

Lui*_*ndo 5

使用ismember带有'rows'选项的第二个输出来获取匹配的索引,您可以从中轻松构建结果:

[~, ind] = ismember(A(:, [1 2]), B(:, [1 2]), 'rows');
C = [A B(ind, 3)];
Run Code Online (Sandbox Code Playgroud)