2017-08-15 35 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

相關問題