如何在Matlab中计算Jaccard Index(|A∩B|)/(| AUB |)

时间:2017-08-15 21:23:53

标签: matlab math

我正在尝试在Matlab中使用代码我有两个A和B集合,其中A = {1,2,5,6,10}和B = {2,3,5,7,9,11} 当我尝试以下代码时出错:

A =[1,2,5,6,10]
B =[2,3,5,7,9,11]
C = union( A,B )
D = intersect(A,B)
Result = D/C

这是错误

Error using  / 
Matrix dimensions must agree.
Error in code (line 6)
Result = D/C

有人可以先帮我计算一下|A∩B|然后| AUB |在Matlab中。最后我将两者分开(|A∩B|)/(| AUB |)。

1 个答案:

答案 0 :(得分:4)

您需要在分割之前获取每个集的大小,这可以通过numel来完成:

Result = numel(D)./numel(C);

你甚至可以将它们整合成一个整洁的小anonymous function

jaccard = @(A, B) numel(intersect(A, B))./numel(union(A, B));

并像这样使用它:

A = [1 2 5 6 10];
B = [2 3 5 7 9 11];
jaccard(A, B)

ans =

   0.222222222222222