LoadSpikeWaveforms - Read spike waveforms from disk. USAGE waveforms = LoadSpikeWaveforms(filename,nChannels,nSamples,list) filename spike waveform file name nChannels number of channels in electrode group nSamples number of samples per waveform list optional list of spikes (from 1 to N) to load OUTPUT waveforms 3D array (spike #,channel,sample) of waveforms SEE See also GetSpikeWaveforms, PlotSpikeWaveforms.
0001 function waveforms = LoadSpikeWaveforms(filename,nChannels,nSamples,list) 0002 0003 %LoadSpikeWaveforms - Read spike waveforms from disk. 0004 % 0005 % USAGE 0006 % 0007 % waveforms = LoadSpikeWaveforms(filename,nChannels,nSamples,list) 0008 % 0009 % filename spike waveform file name 0010 % nChannels number of channels in electrode group 0011 % nSamples number of samples per waveform 0012 % list optional list of spikes (from 1 to N) to load 0013 % 0014 % OUTPUT 0015 % 0016 % waveforms 3D array (spike #,channel,sample) of waveforms 0017 % 0018 % SEE 0019 % 0020 % See also GetSpikeWaveforms, PlotSpikeWaveforms. 0021 0022 % Copyright (C) 2004-2013 by Michaƫl Zugaro 0023 % 0024 % This program is free software; you can redistribute it and/or modify 0025 % it under the terms of the GNU General Public License as published by 0026 % the Free Software Foundation; either version 3 of the License, or 0027 % (at your option) any later version. 0028 0029 if nargin < 3, 0030 error('Incorrect number of parameters (type ''help <a href="matlab:help LoadSpikeWaveforms">LoadSpikeWaveforms</a>'' for details).'); 0031 end 0032 0033 [path,basename,extension] = fileparts(filename); 0034 if isempty(path), path = '.'; end 0035 0036 electrodeGroupStr = extension(2:end); 0037 electrodeGroup = str2num(electrodeGroupStr); 0038 [~,basename] = fileparts(basename); 0039 0040 % Load .spk file 0041 filename = [path '/' basename '.spk.' electrodeGroupStr]; 0042 if ~exist(filename), 0043 error(['File ''' filename ''' not found.']); 0044 end 0045 if nargin < 4, 0046 waveforms = LoadBinary(filename,'nChannels',nChannels); 0047 else 0048 waveforms = LoadBinary(filename,'nChannels',nChannels,'nRecords',nSamples*ones(size(list)),'offset',nSamples*(list-1)); 0049 end 0050 waveforms = reshape(waveforms',nChannels,nSamples,[]); 0051 waveforms = permute(waveforms,[3 1 2]); % rearrange: spike #, channel, sample