96 lines
2.6 KiB
Matlab
96 lines
2.6 KiB
Matlab
%% Test CCRE and CRE class
|
|
% show some default behaviour
|
|
% and test the error handling.
|
|
%% set some constants
|
|
% A=randn(1000,1);
|
|
% A=rand(1000,1);
|
|
A=cat(1,randn(1000,1),randn(200,1)+10);
|
|
%% create instance of CRE class
|
|
% % % S1=CREClass;
|
|
% % % %% Calculate by setting labda equal to each of the (unique) values in the data.
|
|
% % % S1.UseHistProxyFlag=false;
|
|
% % % S1.EqualSizeBinFlag=false;
|
|
% % % S1.Data=A;% set gaussian data
|
|
% % % S1.Calc; %get RB based on the CRE
|
|
% % % S1.CalcRBShannon; %% get RB based on shannon entropy
|
|
% % % disp(S1)
|
|
% % % %% use histogram aproximation with unequal bin sizes in the histogram
|
|
% % % S2=CREClass;
|
|
% % % S2.UseHistProxyFlag=true;
|
|
% % % S2.EqualSizeBinFlag=false;
|
|
% % % S2.Data=A;% set gaussian data
|
|
% % % S2.nBin=numel(A); % set nbin to npoints; This is fine as we use the cummulative distribution and the formulas as defined in Zografos
|
|
% % % S2.Calc
|
|
% % % S2.CalcRBShannon;
|
|
% % % disp(S2)
|
|
% % % %% use histogram aproximation with equal bin sizes in the histogram
|
|
% % % S3=CREClass;
|
|
% % % S3.UseHistProxyFlag=true;
|
|
% % % S3.EqualSizeBinFlag=false;
|
|
% % % S3.Data=A;% set gaussian data
|
|
% % % S3.nBin=numel(A); % set nbin to npoints; This is fine as we use the cummulative distribution and the formulas as defined in Zografos
|
|
% % % S3.Calc
|
|
% % % S3.CalcRBShannon;
|
|
% % % disp(S3)
|
|
%% Check recalculation of edges
|
|
S4=CREClass;
|
|
S4.UseHistProxyFlag=true;
|
|
S4.EqualSizeBinFlag=true;
|
|
S4.Data=A;% set gaussian data
|
|
S4.nBin=numel(A); % set nbin to npoints; This is fine as we use the cummulative distribution and the formulas as defined in Zografos
|
|
S4.Calc
|
|
S4.CalcRBShannon;
|
|
disp(S4)
|
|
S4.nBin=round(numel(A)/10);
|
|
S4.CalcEdges ; % force a recalculation of the edges
|
|
S4.Calc;
|
|
S4.CalcRBShannon;
|
|
disp(S4)
|
|
%%
|
|
return;
|
|
%% Show effect of scaling or ofsett the data
|
|
% Scale
|
|
S.Data=100*A;
|
|
S.UseHistProxyFlag=true;
|
|
S.Calc;
|
|
disp(S);
|
|
% Offset
|
|
S.Data=A+10;
|
|
S.UseHistProxyFlag=true;
|
|
S.Calc;
|
|
disp(S);
|
|
%%
|
|
|
|
%% Test CCRE class
|
|
figure(1);clf;hold on
|
|
figure(2);clf;
|
|
figure(3);clf;hold on;
|
|
A=randn(100);
|
|
B=A;
|
|
B(:)=A(randperm(numel(A)));
|
|
w=-1:0.1:1;
|
|
out(numel(w),1)=struct('w',[],'CRE',[],'CCRE',[],'R',[]);
|
|
for k=1:numel(w)
|
|
out(k).w=w(k);
|
|
CS=CCREClass;
|
|
CS.EqualSizeBinFlag=false;
|
|
CS.Data=1*(1-abs(w(k)))*A+w(k)*B;
|
|
CS.nBin=50;
|
|
CS.DataRef=B;
|
|
CS.nBinRef=500;
|
|
CS.Calc;
|
|
out(k).CRE=CS.CRE;
|
|
out(k).CCRE=CS.CCRE;
|
|
out(k).R=CS.CCRE./CS.CRE;
|
|
figure(2);
|
|
title(sprintf('w: %d',w(k)));
|
|
scatter(CS.DataRef(:),CS.Data(:));
|
|
snapnow
|
|
end
|
|
disp(CS);
|
|
figure(1);
|
|
clf;hold on;
|
|
plot([out(:).w],[out(:).CCRE],'o');
|
|
plot([out(:).w],[out(:).CRE],'x');
|
|
figure(3);clf
|
|
plot([out(:).w],[out(:).R],'d'); |