ECG-Kit 1.0
(7,614 bytes)
%PRTOOLS4TO5
%
% PRTOOLS4TO5(DIRIN,DIROUT)
%
% Copies all files in the directory DIRIN into DIROUT.
% Convert all occurances in DIROUT of calls to
%
% dataset, datafile, mapping, map, pca and crossval
%
% to
%
% prdataset, prdatafile, prmapping, prmap, pcam and prcrossval
%
% This routine may not be full proof. Result should be checked.
% Copyright: R.P.W. Duin, r.p.w.duin37steps.com
function prtools4to5(dirin,dirout)
if exist(dirout,'dir') == 7
[suc,mess]=rmdir(dirout,'s');
disp(mess)
end
mkdir(dirout);
copydir(dirin,dirout);
replacem(dirout,' dataset(',' prdataset(');
replacem(dirout,' dataset;',' prdataset;');
replacem(dirout,'+dataset(','+prdataset(');
replacem(dirout,'=dataset(','=prdataset(');
replacem(dirout,',dataset)',',prdataset)');
replacem(dirout,',dataset(',',prdataset(');
replacem(dirout,'(dataset(','(prdataset(');
replacem(dirout,'.dataset','.prdataset');
replacem(dirout,'''dataset''','''prdataset''');
replacem(dirout,' DATASET(',' PRDATASET(');
replacem(dirout,' DATASET,',' PRDATASET,');
replacem(dirout,',DATASET,',',PRDATASET,');
replacem(dirout,' DATASET.',' PRDATASET.');
replacem(dirout,'%DATASET ','%PRDATASET ');
replacem(dirout,' mapping(',' prmapping(');
replacem(dirout,' mapping;',' prmapping;');
replacem(dirout,'+mapping(','+prmapping(');
replacem(dirout,'*mapping(','*prmapping(');
replacem(dirout,'=mapping(','=prmapping(');
replacem(dirout,',mapping)',',prmapping)');
replacem(dirout,',mapping(',',prmapping(');
replacem(dirout,'.mapping ','.prmapping ');
replacem(dirout,'.mapping=','.prmapping=');
replacem(dirout,'.mapping,','.prmapping,');
replacem(dirout,'''mapping''','''prmapping''');
replacem(dirout,' MAPPING(',' PRMAPPING(');
replacem(dirout,' MAPPING,',' PRMAPPING,');
replacem(dirout,',MAPPING,',',PRMAPPING,');
replacem(dirout,' MAPPING.',' PRMAPPING.');
replacem(dirout,'%MAPPING ','%PRMAPPING ');
replacem(dirout,' datafile(',' prdatafile(');
replacem(dirout,' datafile;',' prdatafile;');
replacem(dirout,'+datafile(','+prdatafile(');
replacem(dirout,'=datafile(','=prdatafile(');
replacem(dirout,',datafile)',',prdatafile)');
replacem(dirout,'.datafile ','.prdatafile ');
replacem(dirout,'.datafile=','.prdatafile=');
replacem(dirout,'.datafile,','.prdatafile,');
replacem(dirout,'''datafile''','''prdatafile''');
replacem(dirout,' DATAFILE(',' PRDATAFILE(');
replacem(dirout,' DATAFILE,',' PRDATAFILE,');
replacem(dirout,',DATAFILE,',',PRDATAFILE,');
replacem(dirout,' DATAFILE.',' PRDATAFILE.');
replacem(dirout,'%DATAFILE ','%PRDATAFILE ');
replacem(dirout,' map(',' prmap(');
replacem(dirout,'+map(','+prmap(');
replacem(dirout,'*map(','*prmap(');
replacem(dirout,'=map(','=prmap(');
replacem(dirout,',map(',',prmap(');
replacem(dirout,' MAP(',' PRMAP(');
replacem(dirout,' MAP,',' PRMAP,');
replacem(dirout,',MAP,',',PRMAP,');
replacem(dirout,' MAP.',' PRMAP.');
replacem(dirout,'%MAP ','%PRMAP ');
replacem(dirout,' pca(',' pcam(');
replacem(dirout,'''pca''','''pcam''');
replacem(dirout,'+pca(','+pcam(');
replacem(dirout,'*pca(','*pcam(');
replacem(dirout,'=pca(','=pcam(');
replacem(dirout,',pca(',',pcam(');
replacem(dirout,';pca(',';pcam(');
replacem(dirout,' PCA(',' PCAM(');
replacem(dirout,' PCA,',' PCAM,');
replacem(dirout,',PCA,',',PCAM,');
replacem(dirout,',PCA ',',PCAM ');
replacem(dirout,' PCA.',' PCAM.');
replacem(dirout,'%PCA ','%PCAM ');
replacem(dirout,' crossval(',' prcrossval(');
replacem(dirout,'=crossval(','=prcrossval(');
replacem(dirout,',crossval(',',prcrossval(');
replacem(dirout,';crossval(',';prcrossval(');
replacem(dirout,' CROSSVAL(',' PRCROSSVAL(');
replacem(dirout,' CROSSVAL,',' PRCROSSVAL,');
replacem(dirout,',CROSSVAL,',',PRCROSSVAL,');
replacem(dirout,',CROSSVAL ',',PRCROSSVAL ');
replacem(dirout,' CROSSVAL.',' PRCROSSVAL.');
replacem(dirout,'%CROSSVAL ','%PRCROSSVAL ');
return
function replacem(dir,s1,s2)
% replace in dir and all subdirs string s1 by s2. m-files only
[subdirs,files] = dirnames(dir);
if ~isempty(subdirs)
for j=1:size(subdirs,1)
subname = deblank(subdirs(j,:));
replacem(fullfile(dir,subname),s1,s2);
end
end
if ~isempty(files)
for j=1:size(files,1)
filename = deblank(files(j,:));
[dummy,dummy,ext] = fileparts(filename);
if strcmp(ext,'.m')
replacef(fullfile(dir,filename),s1,s2);
end
end
end
function replacef(file,s1,s2)
%replace in text file all occurances of string s1 by s2
r = readf(file);
n = grep(r,s1);
if ~isempty(n)
disp(['repl ' file])
c = listn(r); % lines in cell array
c(n) = strrep(c(n),s1,s2); % convert the lines of interest
r = [c{:}]; % back to a single string
writf(file,r);
end
return
%COPYDIR Copy all files from dir to dir
function copydir(dir1,dir2)
if exist(dir2,'dir') ~= 7
mkdir(dir2);
end
[subdirs,files] = dirnames(dir1);
if ~isempty(subdirs)
for j=1:size(subdirs,1)
subname = deblank(subdirs(j,:));
copydir(fullfile(dir1,subname),fullfile(dir2,subname));
end
end
if ~isempty(files)
for j=1:size(files,1)
filename = deblank(files(j,:));
disp(['copy ' filename])
copyfile(fullfile(dir1,filename),fullfile(dir2,filename),'f');
end
end
%DIRNAMES
%
% [SUBDIRS,FILES]= DIRNAMES(DIR)
%
%Get names of all subdirs and files in direcotory DIR.
%Hidden files, . and .. neglected
function [subdirs,files] = dirnames(dirname)
allnames = dir(dirname);
n = length(allnames);
subdirs = cell(1,n);
files = cell(1,n);
ns = 0;
nf = 0;
for j=1:n
if allnames(j).name(1) ~= '.' % skip hidden files
if allnames(j).isdir
ns = ns+1;
subdirs{ns} = allnames(j).name;
else
nf = nf+1;
files{nf} = allnames(j).name;
end
end
end
if ns > 0
subdirs = char(subdirs(1:ns));
else
subdirs = [];
end
if nf > 0
files = char(files(1:nf));
else
files = [];
end
%GREP Get line specific lines
%
% [k,n] = grep(r,s)
% Get the numbers of all lines in the set of lines r
% that contain s.
% n is the total number of lines.
function [k,z] = grep(r,s)
n = [0,find(r==newline)];
m = strfind(r,s);
[dummy,j] = sort([n,m]);
q = [0,j(1:length(j)-1)]-j;
k = j(q>0)-1;
z = length(n)-1; % # of lines
return
%NEWLINE The platform dependent newline character
%
% c = newline
function c = newline
if strcmp(computer,'MAC2')
c = char(13);
elseif strcmp(computer,'PCWIN')
c = char(10);
else
c = char(10);
end
return
%WRITF Write file
%
% writf(file,r)
% Write file from string r
function writf(file,r)
fid = fopen(file,'w');
if fid < 0
error('Cannot open file')
end
fprintf(fid,'%c',r);
fclose(fid);
return
%READF Readfile
%
% [r,n] = readf(file)
% Reads file into string r. The number of lines
% is returned in n.
function [r,n] = readf(file)
fid = fopen(deblank(file),'r');
if fid < 0
error(['Cann''t open ' file])
end
r = fscanf(fid,'%c');
fclose(fid);
n = length(find(r==13));
if r(length(r)) ~= 13, n = n + 1; end
return
%LISTN List lines specified by their line number
%
% t = listn(r,n)
% Get the lines in r given by the line numbers in n.
% Default n, get all.
% t is a cell array
function t = listn(r,n)
k = [0,find(r==newline)];
if k(end)~=length(r)
k = [k length(r)];
end
if nargin < 2, n = [1:length(k)-1]; end
lenr = length(r);
lenk = length(k);
lenn = length(n);
t = cell(1,length(n));
for j = 1:lenn
if n(j) < lenk
m = k(n(j))+1:k(n(j)+1);
if all(m <= lenr)
t{j} = r(m);
end
end
end
return