teg_parse2nested
General function to read standard text output to nested means.
Example: R = teg_parse2nested('AAT_2.txt', {'goResp', 'alc'}, {{'iBlock', 1, 22}}, 'RT', 'acc')
function R = teg_parse2nested(fn, varnames, trialSelection, RTLabel, accLabel)
% function R = teg_parse2nested(fn, varnames, trialSelection, RTLabel, accLabel)
%
fid = fopen(fn, 'r');
varline = fgetl(fid);
fclose(fid);
varnames0 = regexp(varline, '\t', 'split');
for iVar = 1:length(varnames0),
f = strfind(varnames0{iVar}, '[');
if ~isempty(f),
f2 = strfind(varnames0{iVar}, ']');
varnames0{iVar}(f:f2) = [];
end;
estr = [varnames0{iVar} ' = ' num2str(iVar) ';'];
eval(estr);
end;
D = dlmread(fn, '\t', 1, 0);
R.varnames = varnames;
indeps = [];
for n = 1:length(R.varnames),
eval(['indeps = [indeps ' R.varnames{n} '];']);
end;
for iTS = 1:length(trialSelection),
commandstr = ['vec = D(:, ' trialSelection{iTS}{1} ');'];
eval(commandstr);
f = find(vec < trialSelection{iTS}{2} | vec > trialSelection{iTS}{3});
D(f, :) = [];
end;
levels = [];
levelvals = {};
for n = 1:length(indeps),
u = unique(D(:, indeps(n)));
levels = [levels length(u)];
levelvals{n} = u(:);
end;
R.levels = levels;
R.levelvals = levelvals;
facc = find(D(:, acc) == 1);
eval(['dep = D(facc, ' RTLabel ');']);
indep = D(facc, indeps);
[R.RT, R.idvec, Nvec] = rec_combo(dep, indep);
R.RT = [R.RT Nvec];
eval(['dep = D(:, ' accLabel ');']);
indep = D(:, indeps);
[R.acc, dum, Nvec] = rec_combo(dep, indep);
R.acc = [R.acc Nvec];