2014-03-28 62 views
2

是否有任何内置的Matlab函数可以按照以下方式比较阵列?Matlab中的阵列比较

function comparison = elementcompare(array1,array2) 

comparison=logical(true); 
for i=1:length(array1) 
    if ~any(array1(i)==array2) 
     comparison=logical(false); 
    end 
end 

这种比较,如果array1中的每一个元素在数组2中找到返回true,似乎很基本的,但我没能找到它。

谢谢!

回答

5

的最直接方式是使用ismember

comparison = all(ismember(array1(:), array2(:))); 

它也可以与setdiff完成:

comparison = isempty(setdiff(array1(:), array2(:))); 

像往常一样,bsxfun可以做的工作:

comparison = all(any(bsxfun(@eq, array1(:).', array2(:)))); 

甚至unique

comparison = numel(unique([array1(:); array2(:)]))==numel(unique(array2(:)));