how to define Sorenson distance as a function?
    3 ビュー (過去 30 日間)
  
       古いコメントを表示
    
I wrote this function for computing Sorenson distance (the formula of Sorenson is attached ), Is this code right?
), Is this code right?
 ), Is this code right?
), Is this code right?the colon is 62*2001 dataset(attached), when I use this function in my program instead of 62 instances I found 2 instances(rows) in the output.
load colon.mat 
data=colon; 
[n,m]=size(data);
l=1;
t=1;
data1=[];
data2=[];
for i=1:n
    if data(i,m)==1
        data1(l,:)=data(i,:);
        l=l+1;
    else
        data2(t,:)=data(i,:); 
        t=t+1;
    end
end
if t>l
    data1(l:t-1,:)=0;
else
    data2(t:l-1,:)=0;
end
 %computing Distance measures
 for i=1: m                       
    thisCol1=data1(:,i);      
    thisCol2=data2(:,i);
    a(i)=fSorensonDist(thisCol1,thisCol2);
 end
    [A,indA]=sort(a,'descend');
    datas17=data(:,indA(1,10));
    datas17=[datas17,data(:,m)];
    save('datas17.mat');
I defined the sorenson function for computing distance:
    function [ fsnd ] = fSorensonDist( p,q )
fsnd=sum(abs(p-q))/sum(p+q);
end
I'll be very grateful to have your opinions. Thanks
0 件のコメント
回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
