我有两个不同尺寸的矩阵共同的元素,例如:寻找在不同尺寸的矩阵
A = [10 12 15 16 17 43 77];
B = [10 11 15 20 43 55 222 90 86];
我想比较这两个矩阵,找出相同的价值观,并将其存储在一个新的变量。结果应该是这样的:
C = [10 15 43];
因为我是MATLAB的新用户,如果有人给我关于这个问题的想法,这将是很好的。提前致谢。
我有两个不同尺寸的矩阵共同的元素,例如:寻找在不同尺寸的矩阵
A = [10 12 15 16 17 43 77];
B = [10 11 15 20 43 55 222 90 86];
我想比较这两个矩阵,找出相同的价值观,并将其存储在一个新的变量。结果应该是这样的:
C = [10 15 43];
因为我是MATLAB的新用户,如果有人给我关于这个问题的想法,这将是很好的。提前致谢。
如果2个数组的大小是相同的,只是做:
C = find(A==B);
它发现满足测试A==B
所有元素;该测试是以元素方式执行的:输出是与输入数组的大小相同的掩码,其中每个元素如果是A(i)==B(i)
则为真。
对于非同等大小的数组,一个解决方法是调用该函数intersect
:
C = intersect(A,B);
这不正是你想要的东西,得到在A和B的共同价值观注意输出值进行排序。正如评论由excaza说,这是可能得到的共同价值观以相同的顺序按它们出现在参数(A
在这个例子中)通过了第一个数组中,通过添加选项'stable'
的号召:
C = intersect(A,B,'stable');
你想要的是类似的值是在B. A的值也在相同的位置或类似的价值? – excaza