我正在尝试在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 |)。
答案 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