matlab中的列查找与匹配

matlab中的列查找与匹配,matlab,Matlab,我有一个excel_1,有4列(A、B、C、分数),有不同的组合。我还有一个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

我有一个excel_1,有4列(A、B、C、分数),有不同的组合。我还有一个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之间不可能存在。可能你可以试试这个

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


我得到的错误是???下标索引必须是实正整数或逻辑数。错误为==>Untitled at 6结果=A(J,:);。。。你可以知道原因吗?J返回正确的索引,但是,它不能转换为第四列值。我可以认识你吗?
result =

    97     5    13    94
    99     2    32    14