Home > FMAToolbox > IO > LoadParameters.m

LoadParameters

PURPOSE ^

LoadParameters - Load parameters from an XML file.

SYNOPSIS ^

function parameters = LoadParameters(filename)

DESCRIPTION ^

LoadParameters - Load parameters from an XML file.

  USAGE

    parameters = LoadParameters(filename)

    filename            parameter file name

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function parameters = LoadParameters(filename)
0002 
0003 %LoadParameters - Load parameters from an XML file.
0004 %
0005 %  USAGE
0006 %
0007 %    parameters = LoadParameters(filename)
0008 %
0009 %    filename            parameter file name
0010 
0011 % Copyright (C) 2004-2018 by Michaƫl Zugaro
0012 %
0013 % This program is free software; you can redistribute it and/or modify
0014 % it under the terms of the GNU General Public License as published by
0015 % the Free Software Foundation; either version 3 of the License, or
0016 % (at your option) any later version.
0017 
0018 if ~exist(filename),
0019     error(['File ''' filename ''' not found.']);
0020 end
0021 [pathname,basename] = fileparts(filename);
0022 parameters.session.path = pathname;
0023 parameters.session.name = basename;
0024 
0025 if isempty(which('xmltree')),
0026     error('This function requires the <a href="http://www.artefact.tk/software/matlab/xml/">xmltree</a> toolbox by G. Flandin.');
0027 end
0028 
0029 t = xmltree(filename);
0030 p = convert(t);
0031 if ~isempty(p.spikeDetection),
0032     parameters.spikeGroups.nGroups = length(p.spikeDetection.channelGroups.group);
0033     if parameters.spikeGroups.nGroups == 1,
0034         parameters.spikeGroups.nSamples = str2num(p.spikeDetection.channelGroups.group.nSamples);
0035         parameters.spikeGroups.peakSamples = str2num(p.spikeDetection.channelGroups.group.peakSampleIndex);
0036         channels = p.spikeDetection.channelGroups.group.channels.channel;
0037         if isa(channels,'cell'),
0038             for channel = 1:length(channels),
0039                 parameters.spikeGroups.groups{1}(channel) = str2num(channels{channel});
0040             end
0041         else
0042             parameters.spikeGroups.groups{1} = str2num(channels);
0043         end
0044     else
0045         for group = 1:parameters.spikeGroups.nGroups,
0046             parameters.spikeGroups.nSamples(group) = str2num(p.spikeDetection.channelGroups.group{group}.nSamples);
0047             parameters.spikeGroups.peakSamples(group) = str2num(p.spikeDetection.channelGroups.group{group}.peakSampleIndex);
0048             if isempty(p.spikeDetection.channelGroups.group{group}.channels),
0049                 parameters.spikeGroups.groups{group} = [];
0050                 continue
0051             end
0052             channels = p.spikeDetection.channelGroups.group{group}.channels.channel;
0053             if isa(channels,'cell'),
0054                 for channel = 1:length(channels),
0055                     parameters.spikeGroups.groups{group}(channel) = str2num(channels{channel});
0056                 end
0057             else
0058                 parameters.spikeGroups.groups{group} = str2num(channels);
0059             end
0060         end
0061     end
0062 else
0063     parameters.spikeGroups.nSamples = [];
0064     parameters.spikeGroups.peakSampleIndex = [];
0065     parameters.spikeGroups.groups = {};
0066     parameters.spikeGroups.nGroups = 0;
0067 end
0068 
0069 parameters.nChannels = str2num(p.acquisitionSystem.nChannels);
0070 parameters.nBits = str2num(p.acquisitionSystem.nBits);
0071 parameters.rates.lfp = str2num(p.fieldPotentials.lfpSamplingRate);
0072 parameters.rates.wideband = str2num(p.acquisitionSystem.samplingRate);
0073 try
0074     parameters.rates.video = str2num(p.video.samplingRate);
0075     parameters.maxX = str2num(p.video.width);
0076     parameters.maxY = str2num(p.video.height);
0077 catch
0078     parameters.rates.video = 0;
0079     parameters.maxX = 0;
0080     parameters.maxY = 0;
0081     disp('... warning: missing video parameters (set to zero)');
0082 end

Generated on Fri 16-Mar-2018 13:00:20 by m2html © 2005