1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- function NSx = openNSxSync(varargin)
- % openNSxSync
- %
- % Opens a synced NSx file and removed the extra bit of data from the file.
- %
- % INPUT
- %
- % filename: The name of the file to be opened.
- % DEFAULT: The program will prompt the user to select a file.
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Kian Torab
- % kianblackrockmicro.com
- % Blackrock Microsystems
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Version History
- %
- % 1.0.0.0:
- % - Initial release.
- %
- % 1.1.0.0: June 13, 2014
- % - Added the ability to open a file by passing on the file name.
- %
- % 1.1.1.0: December 3, 2014
- % - Fixed a minor bug.
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %% Initializing varilables.
- for inputIDX = 1:nargin
- inputVar = varargin{inputIDX};
- if isnumeric(inputVar)
- if inputVar >= 1 && inputVar <= 2
- method = inputVar;
- else
- disp('The variable method can only be 1 (defauly) or 2. See help for more information.');
- NSx = -1;
- return;
- end
- else
- filename = inputVar;
- end
- end
- %% Openning Synced files and removing the extra piece of data
- if exist('filename', 'var')
- if exist(filename, 'file') == 2
- NSx = openNSx(filename);
- else
- disp('File was not found.');
- NSx = -1;
- return;
- end
- else
- NSx = openNSx;
- end
- %% Getting rid of the data extra bits and pieces created by the sync algorithm
- if iscell(NSx.Data)
- % Removing the extra bit of empty data
- NSx.Data = NSx.Data{2};
- NSx.MetaTags.Timestamp(1) = [];
- NSx.MetaTags.DataPoints(1) = [];
- NSx.MetaTags.DataDurationSec(1) = [];
- % Re-aligning what's left
- NSx.Data = [zeros(NSx.MetaTags.ChannelCount, floor(NSx.MetaTags.Timestamp)/NSx.MetaTags.SamplingFreq) NSx.Data];
- NSx.MetaTags.DataPoints = NSx.MetaTags.DataPoints - NSx.MetaTags.Timestamp;
- NSx.MetaTags.DataDurationSec = NSx.MetaTags.DataPoints / NSx.MetaTags.SamplingFreq;
- NSx.MetaTags.Timestamp = 0;
- end
- %% If user does not specify an output argument it will automatically create a structure.
- outputName = ['NS' NSx.MetaTags.FileExt(4)];
- if (nargout == 0),
- assignin('caller', outputName, NSx);
- clear all;
- else
- varargout{1} = NSx;
- end
|