function [tbeg,tend,nstat,um,uu,vv,ww,uv,uub,uvb,varargout] = read_statistics_channel_ucf(file,varargin) % Parse optional input arguments par = inputParser; addOptional(par,'verbosity',0,@isnumeric); addOptional(par,'debug',0,@isnumeric); parse(par,varargin{:}); % Define sets to be read sets = {'um','uu','vv','ww','uv','uub','uvb'}; nset = numel(sets); % Open UCF file and read obj = ucf(file,'read','verbosity',par.Results.verbosity,'debug',par.Results.debug); tend = obj.getSimulationTime(1); % Read first dataset [um,params] = obj.readSet(1,1); % Parse parameters tbeg = typecast(params(1),'double'); nstat = cast(params(2),'double'); nset1 = cast(params(4),'double'); % channel stats nset2 = cast(params(5),'double'); % force eulerian if nset1~=7 error('Invalid file.'); end um = um/nstat; uu = obj.readSet(1,2)/nstat; vv = obj.readSet(1,3)/nstat; ww = obj.readSet(1,4)/nstat; uv = obj.readSet(1,5)/nstat; uub = obj.readSet(1,6)/nstat; uvb = obj.readSet(1,7)/nstat; % If eulerian force data, read that too if nset2==3 if par.Results.verbosity fprintf('Eulerian force data found.\n'); end fxp = obj.readSet(1,8); fyp = obj.readSet(1,9); fzp = obj.readSet(1,10); varargout{1} = fxp; varargout{2} = fyp; varargout{3} = fzp; end % Close file obj.close(); end