将数据转换为二进制以使用jaccard相似性系数

时间:2014-01-22 14:46:01

标签: matlab binary-data

所以我有一个巨大的3D阵列,扫描一些组织。我需要能够用1替换此数组中的所有非零条目,并保持所有零相同。我怎么能这样做呢?

然后,一旦我完成了这个,我需要计算jaccard相似系数(JSC),我可以使用matlabs内置函数union()intersect(),我只需要找到一种方法找到组织中的体素数量(即如果我的数组是x,我需要找到|x|

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

第一部分很简单,使用逻辑索引(example):

I = ~~I;

虽然将高于阈值的所有内容设置为1并且将所有内容设置为0以下可能更为现实:

th = 0.001; %//for example
I = I >= th;

对于基于维基百科的JSC,我假设您正在比较两个相同大小的二进制图像?让我们说Ix

M11 = nnz(I & x);
M10 = nnz(I & ~x);
M01 = nnz(~I & x);
M00 = nnz(~I & ~x);

JSC = M11/(M10 + M01 + M11)