Mercurial > hg > ltpda
diff m-toolbox/classes/+utils/@xml/getNumber.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/+utils/@xml/getNumber.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,51 @@ + +function values = getNumber(node) + + shape = utils.xml.getShape(node); + type = utils.xml.getType(node); + + if any(shape==0) + + % Special case for an empty double. + values = zeros(shape); + + else + + if strcmp(type, 'double') || strncmp(type, 'uint', 4) || strncmp(type, 'int', 3) || ... + strcmp(type, 'single') || strcmp(type, 'float') || strcmp(type, 'logical') + + % Get the values direct from the node content + numberStr = utils.xml.mchar(node.getTextContent()); + if (numberStr(1) == '[') + values = eval(numberStr); + else + values = sscanf(numberStr, '%g '); + end + + % Cast to correct type + if ~strcmp(type, 'double') + values = cast(values, type); + end + + elseif strcmp(type, 'doubleVector') + + % Get vector + values = utils.xml.getVector(node); + + elseif strcmp(type, 'doubleMatrix') + + % Get matrix + values = utils.xml.getMatrix(node); + + else + + error('### Unknown number type [%s]', type); + + end + + % Reshape the values + values = reshape(values, shape); + + end + +end