比较单元阵列元素Matlab的有效方法

时间:2014-03-15 01:30:01

标签: matlab

我有两个单元格数组。我需要计算第一个单元阵列中第二个单元阵列中没有出现的元素分数。单元格数组中的元素将非常大,因此循环将花费相当长的时间,有没有什么方法可以做到这一点?下面是一个小例子。

x = {'a b' ;'b c' ;'c d'} 
y = {'1 a' ;'a b' ;'b d'} 

我试图做cellfun(@strcmp, x, y)但是当x和y具有相同的大小时,这会逐元素地进行比较。相反,我需要检查x中每个元素的'a b'是否在y等。对上述内容的答案应该给出2/3,这意味着3个中的2个元素不在y单元格数组中。

任何矢量化的想法?

1 个答案:

答案 0 :(得分:1)

您想要ismember

>> notIn = ~ismember(x,y)
notIn =
     0
     1
     1

因此分数为sum(notIn)/numel(x)