在matlab中查找列和匹配

时间:2012-06-30 05:17:43

标签: matlab

我有一个带有4列(A,B,C,得分)的excel_1,它们具有不同的组合。我有另一个excel_2有3列(A,B,C)。我想根据A,B,C找出分数。我正在尝试使用excel索引和匹配功能,但我仍然无法弄清楚。没有编码,它真的让我很难一一匹配...我可以知道如何在Matlab中编写代码吗?

示例:

excel_1
99 5 35 12
99 2 32 14
97 5 13 94
...

excel_2
97 5 13
99 2 32
...

执行代码后,

结果:

excel_2
97 5 13 94
99 2 32 14
...

非常感谢...

A = xlsread('excel_1.xlsx');
B = xlsread('excel_2.xlsx');

[~,J] = ismember(B,A(:,1:size(B,2)),'rows');
if any(J)
    result = A(J,:);
end

??? Subscript indices must either be real positive integers or logicals.

Error in ==> Untitled at 6
    result = A(J,:);    

解决。在B和A之间不可能存在。

1 个答案:

答案 0 :(得分:2)

可能你可以试试这个。

[~,J] = ismember(excel_2,excel_1(:,1:size(excel_2,2)),'rows');
if any(J)
   result = excel_1(J,:);
end

然后

result =

    97     5    13    94
    99     2    32    14