diff --git a/CREClass.m b/CREClass.m index c2dce4f..1611f1c 100644 --- a/CREClass.m +++ b/CREClass.m @@ -76,11 +76,13 @@ classdef CREClass < handle if isempty(obj.nBin) obj.nBin=floor(numel(obj.Data)./10); end - [N,bin]=hist(obj.Data(:),obj.nBin); - N=transpose(N); - P=N./sum(N); - CP=cumsum(P); - FC=1-CP; +%update part below to prefered matlab commands +% [N,bin]=hist(obj.Data(:),obj.nBin); +% N=transpose(N); +% P=N./sum(N); +% CP=cumsum(P); + [CP,bin]=histcounts(obj.Data(:),obj.nBin,'Normalization','cdf'); + FC=1-transpose(CP); FC(FC<0)=0; dl=ones(size(FC))./numel(FC); else @@ -90,7 +92,7 @@ classdef CREClass < handle for k=1:numel(q) FC(k)=sum(obj.Data(:)>=q(k)); if k==1 - dl(k)=(q(k+1)-q(k))/2; %should I divide by 2? + dl(k)=(q(k+1)-q(k))/2; elseif k==numel(q) dl(k)=(q(k)-q(k-1))/2; else @@ -101,7 +103,7 @@ classdef CREClass < handle end LogFC=log(FC); LogFC(~isfinite(LogFC))=0;%the log of 0 is -inf. however in Fc.*logFc it should end up as 0. to avoid conflicts removing the -inf - if any(isnan(FC));keyboard;end + if any(isnan(FC));error('something went wrong');end %catch a posible error. obj.CRE=-transpose(dl)*(FC.*LogFC)./(transpose(dl)*FC); %CRE zografos %% get the RB dl(FC>0.5)=0; %set the weight for all in the histogram to the left side (i.e.