matlab中的列查找与匹配
我有一个excel_1,有4列(A、B、C、分数),有不同的组合。我还有一个excel_2,有3列(A、B、C)。我想根据A,B,C找出分数。我正在尝试使用excel索引和匹配函数,但我仍然无法理解。没有编码,我真的很难一个接一个地匹配它…我可以知道如何用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
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