


parse_log_by_cc() - Returns the item boundaries of chunks of time
corresponding to different codes in a log file.
Useful for importing data corresponding to specific
condition codes via erpio2.
Usage:
>> [cc_bounds, cc_bounds_codes]=find_cc0(log_info);
Inputs:
log_info - 2D matrix of log file information obtained from an ascii
version of a Kutaslab logfile and import_entire_log.m. Each
row of log_info corresponds to a different item and each
column corresponds:
1. Log Item Number
2. Event Code
3. Condition Code
4. Log Flag (40=nonblink art; 60=blink art)
5. Time
Outputs:
cc_bounds - 2D matrix of the item numbers that begin and end a
period of time with the same condition code. Note,
boundaries are inclusive.
cc_bounds_codes - Vector of condition codes corresponding to each period
of the logfile specified by cc_bounds
Notes:
-This code relies on the fact that pausing the dig machines results in an
event code of -16384
Author:
David Groppe
Kutaslab, 6/2011

0001 function [cc_bounds, cc_bounds_codes]=parse_log_by_cc(log_info) 0002 % parse_log_by_cc() - Returns the item boundaries of chunks of time 0003 % corresponding to different codes in a log file. 0004 % Useful for importing data corresponding to specific 0005 % condition codes via erpio2. 0006 % 0007 % Usage: 0008 % >> [cc_bounds, cc_bounds_codes]=find_cc0(log_info); 0009 % 0010 % Inputs: 0011 % log_info - 2D matrix of log file information obtained from an ascii 0012 % version of a Kutaslab logfile and import_entire_log.m. Each 0013 % row of log_info corresponds to a different item and each 0014 % column corresponds: 0015 % 1. Log Item Number 0016 % 2. Event Code 0017 % 3. Condition Code 0018 % 4. Log Flag (40=nonblink art; 60=blink art) 0019 % 5. Time 0020 % 0021 % Outputs: 0022 % cc_bounds - 2D matrix of the item numbers that begin and end a 0023 % period of time with the same condition code. Note, 0024 % boundaries are inclusive. 0025 % cc_bounds_codes - Vector of condition codes corresponding to each period 0026 % of the logfile specified by cc_bounds 0027 % 0028 % Notes: 0029 % -This code relies on the fact that pausing the dig machines results in an 0030 % event code of -16384 0031 % 0032 % Author: 0033 % David Groppe 0034 % Kutaslab, 6/2011 0035 % 0036 0037 bndry_ids=[0; find(log_info(:,2)==-16384)]; 0038 current_ccode=log_info(1,3); 0039 current_bndry_start=1; 0040 cc_bounds=[]; 0041 cc_bounds_codes=[]; 0042 for a=1:(length(bndry_ids)-1), 0043 start_item=bndry_ids(a); 0044 stop_item=bndry_ids(a+1); 0045 ccodes=unique(log_info(start_item+1:stop_item,3)); 0046 if length(ccodes)==1 0047 fprintf('Chunk %d: ccode %d\n',a,ccodes); 0048 else 0049 error('Chunk %d has more than one condition code.',a); 0050 end 0051 if ccodes~=current_ccode, 0052 cc_bounds=[cc_bounds; current_bndry_start start_item]; 0053 cc_bounds_codes=[cc_bounds_codes current_ccode]; 0054 current_bndry_start=start_item+1; 0055 current_ccode=ccodes; 0056 end 0057 end 0058 cc_bounds=[cc_bounds; current_bndry_start size(log_info,1)]; 0059 cc_bounds_codes=[cc_bounds_codes current_ccode];