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'); |