Md.*_*him 0 matlab set-intersection
我有两个不同大小的矩阵,例如:
A = [10 12 15 16 17 43 77];
B = [10 11 15 20 43 55 222 90 86];
Run Code Online (Sandbox Code Playgroud)
我想比较这两个矩阵以找出相同的值并将它们存储在一个新变量中.结果应如下所示:
C = [10 15 43];
Run Code Online (Sandbox Code Playgroud)
因为我是MATLAB的新用户,如果有人给我关于这个问题的想法会很好.提前致谢.
如果2个数组的大小相同,只需执行以下操作:
C = find(A==B);
Run Code Online (Sandbox Code Playgroud)
它找到满足测试的所有元素A==B; 该测试是按元素执行的:输出是与输入数组大小相同的掩码,其中每个元素都为真A(i)==B(i).
对于不同大小的数组,解决方案是调用函数intersect:
C = intersect(A,B);
Run Code Online (Sandbox Code Playgroud)
它完全符合您的要求,获得A和B中的公共值.请注意,输出值已排序.正如注释中的excaza所述A,通过向'stable'调用添加选项,可以获得与参数中传递的第一个数组中出现的相同顺序的公共值(在此示例中):
C = intersect(A,B,'stable');
Run Code Online (Sandbox Code Playgroud)