查看单个帖子
旧 2019-11-26, 06:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 how to define Sorenson distance as a function

I wrote this function for computing Sorenson distance (the formula of Sorenson is attached), Is this code right?



function [ fsnd ] = fSorensonDist( p,q )
a=abs(p-q);
b=p+q;
s=0;
as=0;
bs=0;
for i=1:size(p,1)
as=as+a(i);
bs=bs+b(i);
if as~=0 && bs~=0
s=(as/bs);
end
end
fsnd=s;
end


the colon is 62*2001 dataset, when I use this function in my program instead of 62 instances I found 2 instances(rows) in the output.



  clc;
clear;
close all;
load colon.mat
data=colon;
[n,m]=size(data);
for i=1:m-1
for j=i+1:m
t(i,j)=fChebyshevDist(data(:,i),data(:,j));
b=sum(t)/(m-1);
end
end


I'll be very grateful to have your opinions. Thanks





More answer...
poster 当前离线   回复时引用此帖