| | function [spec, headerinfo] = read_caret_spec(specfile) |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| |
|
| | try, |
| | |
| | |
| | ft_hastoolbox('gifti', 1); |
| | g = xmltree(specfile); |
| | |
| | |
| | s = convert(g); |
| | |
| | if isfield(s, 'FileHeader') |
| | headerinfo = s.FileHeader; |
| | spec = rmfield(s, 'FileHeader'); |
| | else |
| | headerinfo = []; |
| | spec = s; |
| | end |
| | |
| | |
| | if ~isempty(headerinfo) |
| | if isfield(headerinfo, 'Element') |
| | tmp = headerinfo.Element; |
| | tmp2 = struct([]); |
| | for k = 1:numel(headerinfo.Element) |
| | tmp2(1).(strrep(headerinfo.Element{k}.Name, '-', '_')) = headerinfo.Element{k}.Value; |
| | end |
| | headerinfo = tmp2; |
| | end |
| | end |
| | |
| | |
| | f = fieldnames(spec); |
| |
|
| | for k = 1:numel(f) |
| | if isempty(strfind(f{k}, 'study_metadata')) |
| | if iscell(spec.(f{k})) |
| | tmp = spec.(f{k}); |
| | tmp2 = {}; |
| | for m = 1:numel(tmp) |
| | tmpx = tmp{m}; |
| | if isstruct(tmpx) |
| | fn = fieldnames(tmpx) |
| | for i = 1:numel(fn) |
| | tmp2{end+1,1} = tmpx.(fn{i}); |
| | end |
| | end |
| | end |
| | spec.(f{k}) = tmp2; |
| | elseif isstruct(spec.(f{k})) |
| | tmp = spec.(f{k}); |
| | fn = fieldnames(tmp); |
| | tmp2 = {}; |
| | for m = 1:numel(fn) |
| | tmp2{end+1,1} = tmp.(fn{m}); |
| | end |
| | spec.(f{k}) = tmp2; |
| | else |
| | |
| | spec = rmfield(spec, f{k}); |
| | end |
| | else |
| | |
| | spec = rmfield(spec, f{k}); |
| | end |
| | end |
| | |
| | catch |
| | |
| | |
| | fid = fopen(specfile); |
| | line = 'some text'; |
| | while isempty(strfind(line, 'EndHeader')) |
| | line = fgetl(fid); |
| | if isempty(strfind(line, 'BeginHeader')) && isempty(strfind(line, 'EndHeader')) |
| | tok = tokenize(line, ' '); |
| | headerinfo.(strrep(tok{1},'-','_')) = tok{2}; |
| | end |
| | end |
| | line = fgetl(fid); |
| | |
| | spec = struct([]); |
| | while 1 |
| | line = fgetl(fid); |
| | if ~ischar(line), break, end |
| | tok = tokenize(line, ' '); |
| | if ~isempty(tok{1}) |
| | if isfield(spec, tok{1}) |
| | spec(1).(tok{1}){end+1,1} = tok{2}; |
| | else |
| | spec(1).(tok{1}){1} = tok{2}; |
| | end |
| | end |
| | end |
| | fclose(fid); |
| | end |
| |
|
| |
|