function fh = create(fname,varnames,ncols,bytesperelem) % fh=create(fname,varnames,ncols,bytesperelem) Create a Gauss data % set with file handle fh, named fname for writing % with number of columns equal to cols, number of bytes per element % equal to bytesperelem, and (optional) varnames given as a character % array % Note: (fh)'th row of the global matrix _gaussfh will be initialized % and a file named fname.dht will be created global gaussfh; % gauss file handle info if isempty(findstr('.dat',fname)); fnamehd=strcat(fname,'.dht'); fname=strcat(fname,'.dat'); else; fnamehd=strrep(fname,'.dat','.dht'); end; faux=fopen(fnamehd,'w'); if faux==-1; 'Could not open Gauss dataset header file'; 'The following file could not be created:'; fnamehd; end; dhtvec=zeros(128+ncols*8,1); dhtvec(1)=218; dhtvec(2)=218; dhtvec(7)=ncols; dhtvec(9)=ncols*bytesperelem; dhtvec(11)=128; dhtvec(13)=bytesperelem; i=1; while i <= ncols; lp=129+(i-1)*8; up=lp+7; if isempty(varnames); thisstr=strcat('col',num2str(i)); elseif rows(varnames)==1 & ncols>1; thisstr=strcat(varnames,num2str(i)); else; thisstr=varnames(i); end; ntp=8-cols(thisstr); if ntp==0; dhtvec(lp:up)=double(thisstr)'; else; rows(double(thisstr)'); rows(blanks(ntp)'); lab=[double(thisstr)';double(blanks(ntp))']; dhtvec(lp:up)=lab; end; i=i+1; end; ww=fwrite(faux,dhtvec,'uchar'); fclose(faux); fh=fopen(fname,'w'); gaussfh(fh,1)=ncols; gaussfh(fh,2)=bytesperelem; if fh==-1; 'Could not create Gauss dataset '; 'The following file was not created:'; fname; end; return;