83b8d24622a4415c6e3d97511ab86f26df79609a
[scilab.git] / scilab / modules / elementary_functions / macros / oct2dec.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA - Farid BELAHCENE
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 // oct2dec function
14 //
15 // oct2dec(o) returns in vector d the numbers corresponding to the
16 // octal representation of o.
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 = oct2dec(o)
26
27   [lhs, rhs] = argn(0);
28   if rhs <> 1 then
29     error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"oct2dec", 1));
30   end
31
32   if type(o) <>  10 then
33     error(msprintf(gettext("%s: Wrong type for input argument #%d: Matrix of strings expected.\n"), "oct2dec", 1));
34   end
35
36   [nr, nc] = size(o);
37
38   d = [];
39
40   for i = 1:size(o, "*")
41     r = msscanf(o(i), "%o");
42     if r <> [] then
43       d(i) = r;
44     else
45       error(msprintf(gettext("%s: Wrong value for input argument #%d: Valid octal representations expected.\n"),"oct2dec",1));
46     end
47   end
48
49   d = matrix(d, nr, nc);
50
51 endfunction