我有三个一维数组,其中元素是一些值,我想将一个数组中的每个元素与其他两个数组中的所有元素进行比较。
例如:
a=[2,4,6,8,12]
b=[1,3,5,9,10]
c=[3,5,8,11,15]
我想知道不同数组中是否有相同的值(在本例中有 3,5,8)
最佳答案
answer given by AB是正确的,但它特定于您要比较的 3 数组的情况。还有另一种选择,可以轻松扩展到任意数量的任意大小的数组。唯一的假设是每个单独的数组都包含唯一的(即非重复的)值:
>> allValues = sort([a(:); b(:); c(:)]); %# Collect all of the arrays
>> repeatedValues = allValues(diff(allValues) == 0) %# Find repeated values
repeatedValues =
3
5
8
如果数组包含重复值,您将需要调用 UNIQUE在使用上述解决方案之前对它们中的每一个进行测试。
关于arrays - MATLAB:比较三个数组中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2425066/