我有三个一维数组,其中元素是一些值,我想将一个数组中的每个元素与其他两个数组中的所有元素进行比较。
例如:
a=[2,4,6,8,12]
b=[1,3,5,9,10]
c=[3,5,8,11,15]
我想知道不同数组中是否有相同的值(在本例中有 3,5,8)
The AB给出的答案 https://stackoverflow.com/questions/2425066/matlabcomparing-all-elements-in-three-arrays/2425911#2425911是正确的,但它特定于您有的情况3您正在比较的数组。还有另一种选择可以轻松扩展到任意数量的任意大小的数组。唯一的假设是每个单独的数组包含唯一的(即非重复的)值:
>> allValues = sort([a(:); b(:); c(:)]); %# Collect all of the arrays
>> repeatedValues = allValues(diff(allValues) == 0) %# Find repeated values
repeatedValues =
3
5
8
如果数组包含重复值,则需要调用UNIQUE http://www.mathworks.com/access/helpdesk/help/techdoc/ref/unique.html在使用上述解决方案之前对它们中的每一个进行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)