Bug Fix #14471 - strange([]) returned [] instead of %nan as all other functions for...
[scilab.git] / scilab / modules / statistics / macros / strange.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2000 - INRIA - Carlos Klimann
3 //
4 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12 //
13
14 function [r] = strange(x,orien)
15     //
16     //The range  is  the distance between   the largest  and smaller  value,
17     //[r]=range(x) computes the range of vector or matrix x.
18     //
19     //[r]=range(x,'r')  (or equivalently  [r]=range(x,1)) give a  row vector
20     //with the range of each column.
21     //
22     //[r]=range(x,'c') (or equivalently [r]=range(x,2)) give a column vector
23     //with the range of each row.
24     //
25     //
26     [lhs,rhs] = argn(0)
27     if rhs==0 then 
28         msg = _("%s: Wrong number of input arguments: %d to %d expected.\n")
29         error(msprintf(msg,"strange",0,2))
30     end
31     if rhs==1 then
32         if x==[]
33             r = %nan
34         else
35             r = max(x) - min(x)
36         end
37     elseif rhs==2 then
38         if orien=="r" | orien==1 then
39             r = max(x,"r")-min(x,"r")
40         elseif orien=="c" | orien==2 then
41             r = max(x,"c") - min(x,"c")
42         else
43             msg = _("%s: Wrong value for %d input argument: ''%s'', ''%s'', %d or %d expected.\n")
44             error(msprintf(msg,"strange",2,"r","c",1,2))
45         end
46     end
47 endfunction