在八度音程中交叉两个矩阵

时间:2012-11-07 16:35:52

标签: matlab octave

我有两个矩阵。两者都是nx2,值列1具有id,列2具有值:

| id1 | A1 |
| id2 | A2 |
| id3 | A3 |
| id4 | A4 |

第一个表示关于对象A的数据,第二个表示关于对象B的数据。我需要从两个矩阵中找到共同的id并将它们放入一个只有值的矩阵中:

| A1 | B1 |
| A2 | B2 |
| A3 | B3 |
| A4 | B4 |

每行的条件表示对应于相同id的值。重要说明:忽略两个输入矩阵不常见的所有ID。我的数据集很长,我正在寻找以八度音程完成它的最佳方法(类似的解决方案也适用于matlab我猜)。单个矩阵中的ID是唯一的。

注意:我之前忘了提到id(对于单个矩阵)对于矩阵是唯一的,但它们不代表没有意义的行号和数字。

1 个答案:

答案 0 :(得分:3)

使用intersect

最容易实现
[uniqueIDs, idxA, idxB] = intersect(A(:,1),B(:,1));

result = [A(idxA,2),B(idxB,2)]