%MULTISCALE PDF PROGRAM %Developed by Larry S. Liebovitch %Florida Atlantic University %777 Glades Road, Boca Raton, FL 33431 %liebovit@fau.edu, 561.297.2239 %These programs have been tested and found to be accurate on a number of %different data sets, we do not guarantee that they will be accurate on %all data sets. The user assumes any risk involved in the use these %programs. %MATLAB (R2008A, 7.6.324) PROGRAM: pdfmulti %Produces a Multiscale Probability Density Function (PDF) % clear format long filename=input('Type file name ','s'); fid=fopen(char(filename)); data = fscanf (fid, '%g',[inf]); size12=size(data); ptotal=size12(1) smallest=min(data); d1=input('smallest bin size (0=the program decides)'); if d1==0 d1=2*smallest; end ntotal=0; for i1=1:1000 pin=0; pout=0; d=d1*(2^(i1-1)); bin=(1:21)*0; lbin=(0:20)*d + d/2; for i2=1:ptotal k=fix(data(i2)/d)+1; if (k>=21) bin(21)=bin(21)+1; pout=pout+1; end if (k<21) bin(k)=bin(k)+1; pin=pin+1; end end %i2 d, pin, pout, ptotal for i3=2:20 if bin(i3)>0 ntotal=ntotal+1; x(ntotal)=lbin(i3); y(ntotal)=bin(i3)/(d*ptotal); end end %i3 btest=bin(2)*bin(3)*bin(4); if btest==0,break,end end %i1 output(1,:)=x; output(2,:)=y; toutput=output' inputfilename=filename outputfilename=strrep(inputfilename,'.','MULTIPDF.') Datafid = fopen(outputfilename,'w'); fprintf(Datafid,'%16.8g \t %16.8g \n',output); fclose(Datafid);