def export_unit(Data0): # number of time bins to include in the LFP array nlfpsamp = 0 for tt, trial in enumerate(Data0['trial'][0][0][0]): thislfpsamp = trial['LFP'].shape[1] if thislfpsamp>nlfpsamp: nlfpsamp = thislfpsamp ntrials = Data0['trial'][0][0][0].size # find number of trials nstimID = Data0['trial'][0][0][0][0]['Epoch_Value'][0].size # initialze LFP lfp = np.ndarray((2, ntrials, nlfpsamp), dtype = 'float32') # initialize frequency and attenuation IDs stimID = np.ndarray((ntrials, nstimID), dtype = 'float32') for tt in range(ntrials): trial = Data0['trial'][0][0][0][tt] thisstimID = np.float32(trial['Epoch_Value'][0]) # get the LFP for this trial and pad it with nans so it can fit in a matrix (since some of the trials have +/-1 data point for LFP) for cc in range(2): lfpchannel = trial['LFP'][cc] lfp[cc, tt, :len(lfpchannel)] = lfpchannel # add to Epoch_Value stimID[tt, :] = thisstimID remID = np.array([0., 0.]) trial_mask = RF.make_trial_mask(stimID, remID) lfp = lfp[:, ~trial_mask, :] stimID = stimID[~trial_mask, :] return lfp, stimID