function x=load_param(list,dir,ext,vecsize,number); % x=load_param(list,dir,ext,vecsize,number); % % loads all the data from a list and a dir to a matrix - sphinx format % sphinx header does not contain vector size, so it should be specified. % number of wanted items from the list should be specified. % first pass - determine size N=0; files=0; ff=fopen(list,'r'); while (files < number) ss=fscanf(ff, '%s',[1 1]); if (isempty(ss)) break; end files=files+1; % name=[dir '/features/' ss '.fea']; %disp(name); name=[dir '/' ss '.' ext]; %disp(name); [m,veccount]=read_sphinx (name,vecsize); N=N+veccount; end fclose(ff); % allocate x = zeros(vecsize,N); disp (['reading ',num2str(N),' vectors from ',num2str(files), ' files...']); % 2nd pass - read fil=0; cnt=0; beg=1; ff=fopen(list,'r'); while (fil < number) ss=fscanf(ff, '%s',[1 1]); if (isempty(ss)) break; end name=[dir '/' ss '.' ext]; %disp(name); sphinx=read_sphinx(name,vecsize); vecs=size(sphinx,2); endd = beg+vecs-1; % put it where it belongs x(:,beg:endd) = sphinx; %disp (vecs); fil=fil+1; cnt=cnt+vecs; % update beg beg = endd+1; end disp('ready');