【问题标题】:intersecting two matrix in octave以八度相交两个矩阵
【发布时间】:2012-11-07 16:35:52
【问题描述】:

我有两个矩阵。两者都是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(对于单个矩阵)对于矩阵来说是唯一的,但它们不代表行号和没有意义的数字。

【问题讨论】:

  • 是的,ID 在矩阵中是唯一的。我会补充一点。

标签: matlab octave


【解决方案1】:

使用intersect 最容易做到这一点:

[uniqueIDs, idxA, idxB] = intersect(A(:,1),B(:,1));

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

【讨论】:

    猜你喜欢
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多