2017-08-15 91 views
1

我正在尝试下面的Matlab代码我有两个集合A和B,其中A = {1,2,5,6 ,10}和B时,我想下面的代码= {2,3,5,7,9,11} 给出了一个错误:如何在Matlab中计算Jaccard指数(|A∩B|)/(| AUB |)

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 |)。

+2

你的意思是[Jaccard指数](https://en.wikipedia.org/wiki/Jaccard_index)? –

+0

@RoryDaulton是的我的意思是Jaccard指数 – Aroon

回答

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 
+0

太棒了,它工作正常。谢谢你的帮助。 – Aroon

相关问题