changeset 12585:4e32a1bb9096

mode.m, quantile.m: Return output of same class as input.
author Rik <octave@nomad.inbox5.com>
date Fri, 08 Apr 2011 19:00:42 -0700
parents c8be316f9543
children f9b7aa3b88f8
files scripts/ChangeLog scripts/statistics/base/mode.m scripts/statistics/base/quantile.m
diffstat 3 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/ChangeLog	Wed Apr 06 20:06:45 2011 -0700
+++ b/scripts/ChangeLog	Fri Apr 08 19:00:42 2011 -0700
@@ -1,3 +1,8 @@
+2011-04-08  Rik  <octave@nomad.inbox5.com>
+
+	* statistics/base/mode.m, statistics/base/quantile.m: Return output
+	of same class as input.
+
 2011-04-06  Rik  <octave@nomad.inbox5.com>
 
 	* miscellaneous/pack.m: Improve docstring.
--- a/scripts/statistics/base/mode.m	Wed Apr 06 20:06:45 2011 -0700
+++ b/scripts/statistics/base/mode.m	Fri Apr 08 19:00:42 2011 -0700
@@ -90,7 +90,7 @@
   if (issparse (x))
     m = sparse (sz2(1), sz2(2));
   else
-    m = zeros (sz2);
+    m = zeros (sz2, class (x));
   endif
   for i = 1 : prod (sz2)
     c{i} = xs (t2 (:, i) == f(i), i);
--- a/scripts/statistics/base/quantile.m	Wed Apr 06 20:06:45 2011 -0700
+++ b/scripts/statistics/base/quantile.m	Fri Apr 08 19:00:42 2011 -0700
@@ -308,6 +308,10 @@
     error ("quantile: X must be a numeric vector or matrix");
   endif
 
+  if (isinteger (x))
+    x = double (x);
+  endif
+
   ## Save length and set shape of quantiles.
   n = numel (p);
   p = p(:);
@@ -320,7 +324,7 @@
   nx = size (x, 2);
 
   ## Initialize output values.
-  inv = Inf*(-(p < 0) + (p > 1));
+  inv = Inf(class (x)) * (-(p < 0) + (p > 1));
   inv = repmat (inv, 1, nx);
 
   ## Do the work.