= Averaging Fiff-files = Simple Matlab script for averaging of Fiff-files. It assumes that all data files have identical data parameters (e.g. after interpolation). -------------------------------------- {{{ % Compute the grand-mean for a list of Fiff-files in cell array "files{}" % The string "file_out" specifies the file name for output % The first file of the list will be used as a template for Fiff-output % This obviously assumes that all files have identical parameters (e.g. are % interpolated to a standard sensor array) % OH, March 2009 addpath /opt/mne/matlab/toolbox/; % fiff read/write tools if exist('file_out')~=1, % if not output file specified: write to current working directory cwd = pwd; file_out = fullfile( cwd, 'GrandMean.fif' ); end; if exist('files')~=1, % you can specify a list of files here (e.g. on-line averages for all subjects in your study) files = {'/fullpath/file4subj1.fif', ... '/fullpath/file4subj2.fif', ... '/fullpath/file4subj3.fif'}; end; fid = fopen(file_out, 'a'); if fid==-1, fprintf(1, 'Cannot access output file %s\n', file_out); return; end; fclose(fid); nr_files = length(files); epoch_gm = [0]; for f = 1:nr_files, % read all files and average all that might be relevant fprintf(1, '%s\n', files{f}); data = fiff_read_evoked(files{f}); if f==1, data_templ = data; % first data set will be used as template for output end; epoch_gm = epoch_gm + data.evoked.epochs; % average MEG data epoch end; epoch_gm = epoch_gm/nr_files; data_templ.evoked.epoch = epoch_gm; % insert averaged data into template structure fiff_write_evoked(file_out, data_templ); % Write average % The end of this }}}