1802083df72eb5f19bfe672bc54e56e380d3999c
[scilab.git] / scilab / modules / elementary_functions / macros / hex2dec.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 // Copyright (C) DIGITEO - 2010-2011 - Allan CORNET
4 //
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at
9 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10
11 // =============================================================================
12 //
13 // hex2dec function
14 //
15 // hex2dec(h) returns in vector d the numbers corresponding to the
16 // hexadecimal representation h.
17 //
18 // -Input :
19 //  str : a string (or a vector/matrix of strings)
20 // -Output :
21 //  y : a scalar/vector/matrix
22 //
23 // =============================================================================
24
25 function d = hex2dec(h)
26
27   rhs = argn(2);
28   if rhs <> 1 then
29     error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"hex2dec", 1));
30   end
31
32   if type(h)<> 10 then
33     error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of strings expected.\n"),"hex2dec",1));
34   end
35
36   [nr, nc] = size(h);
37
38   d = [];
39
40   for i = 1:size(h, "*")
41     r = msscanf(h(i), "%X");
42     if r <> [] then
43       d(i) = r;
44     else
45       error(msprintf(gettext("%s: Wrong value for input argument #%d: Valid hexadecimal representations expected.\n"), "hex2dec", 1));
46     end
47   end
48
49   d = matrix(d, nr, nc);
50
51 endfunction