comparison scripts/statistics/median.m @ 30875:5d3faba0342e

doc: Ensure documentation lists output argument when it exists for all m-files. For new users of Octave it is best to show explicit calling forms in the documentation and to show a return argument when it exists. * bp-table.cc, shift.m, accumarray.m, accumdim.m, bincoeff.m, bitcmp.m, bitget.m, bitset.m, blkdiag.m, celldisp.m, cplxpair.m, dblquad.m, flip.m, fliplr.m, flipud.m, idivide.m, int2str.m, interpft.m, logspace.m, num2str.m, polyarea.m, postpad.m, prepad.m, randi.m, repmat.m, rng.m, rot90.m, rotdim.m, structfun.m, triplequad.m, uibuttongroup.m, uicontrol.m, uipanel.m, uipushtool.m, uitoggletool.m, uitoolbar.m, waitforbuttonpress.m, help.m, __additional_help_message__.m, hsv.m, im2double.m, im2frame.m, javachk.m, usejava.m, argnames.m, char.m, formula.m, inline.m, __vectorize__.m, findstr.m, flipdim.m, strmatch.m, vectorize.m, commutation_matrix.m, cond.m, cross.m, duplication_matrix.m, expm.m, orth.m, rank.m, rref.m, trace.m, vech.m, cast.m, compare_versions.m, delete.m, dir.m, fileattrib.m, grabcode.m, gunzip.m, inputname.m, license.m, list_primes.m, ls.m, mexext.m, movefile.m, namelengthmax.m, nargoutchk.m, nthargout.m, substruct.m, swapbytes.m, ver.m, verLessThan.m, what.m, fminunc.m, fsolve.m, fzero.m, optimget.m, __fdjac__.m, matlabroot.m, savepath.m, campos.m, camroll.m, camtarget.m, camup.m, camva.m, camzoom.m, clabel.m, diffuse.m, legend.m, orient.m, rticks.m, specular.m, thetaticks.m, xlim.m, xtickangle.m, xticklabels.m, xticks.m, ylim.m, ytickangle.m, yticklabels.m, yticks.m, zlim.m, ztickangle.m, zticklabels.m, zticks.m, ellipsoid.m, isocolors.m, isonormals.m, stairs.m, surfnorm.m, __actual_axis_position__.m, __pltopt__.m, close.m, graphics_toolkit.m, pan.m, print.m, printd.m, __ghostscript__.m, __gnuplot_print__.m, __opengl_print__.m, rotate3d.m, subplot.m, zoom.m, compan.m, conv.m, poly.m, polyaffine.m, polyder.m, polyint.m, polyout.m, polyreduce.m, polyvalm.m, roots.m, prefdir.m, prefsfile.m, profexplore.m, profexport.m, profshow.m, powerset.m, unique.m, arch_rnd.m, arma_rnd.m, autoreg_matrix.m, bartlett.m, blackman.m, detrend.m, durbinlevinson.m, fftconv.m, fftfilt.m, fftshift.m, fractdiff.m, hamming.m, hanning.m, hurst.m, ifftshift.m, rectangle_lw.m, rectangle_sw.m, triangle_lw.m, sinc.m, sinetone.m, sinewave.m, spectral_adf.m, spectral_xdf.m, spencer.m, ilu.m, __sprand__.m, sprand.m, sprandn.m, sprandsym.m, treelayout.m, beta.m, betainc.m, betaincinv.m, betaln.m, cosint.m, expint.m, factorial.m, gammainc.m, gammaincinv.m, lcm.m, nthroot.m, perms.m, reallog.m, realpow.m, realsqrt.m, sinint.m, hadamard.m, hankel.m, hilb.m, invhilb.m, magic.m, pascal.m, rosser.m, toeplitz.m, vander.m, wilkinson.m, center.m, corr.m, cov.m, discrete_cdf.m, discrete_inv.m, discrete_pdf.m, discrete_rnd.m, empirical_cdf.m, empirical_inv.m, empirical_pdf.m, empirical_rnd.m, kendall.m, kurtosis.m, mad.m, mean.m, meansq.m, median.m, mode.m, moment.m, range.m, ranks.m, run_count.m, skewness.m, spearman.m, statistics.m, std.m, base2dec.m, bin2dec.m, blanks.m, cstrcat.m, deblank.m, dec2base.m, dec2bin.m, dec2hex.m, hex2dec.m, index.m, regexptranslate.m, rindex.m, strcat.m, strjust.m, strtrim.m, strtrunc.m, substr.m, untabify.m, __have_feature__.m, __prog_output_assert__.m, __run_test_suite__.m, example.m, fail.m, asctime.m, calendar.m, ctime.m, date.m, etime.m: Add return arguments to @deftypefn macros where they were missing. Rename variables in functions (particularly generic "retval") to match documentation. Rename some return variables for (hopefully) better clarity (e.g., 'ax' to 'hax' to indicate it is a graphics handle to an axes object).
author Rik <rik@octave.org>
date Wed, 30 Mar 2022 20:40:27 -0700
parents 796f54d4ddbf
children 597f3ee61a48
comparison
equal deleted inserted replaced
30874:2b07748dbae3 30875:5d3faba0342e
22 ## <https://www.gnu.org/licenses/>. 22 ## <https://www.gnu.org/licenses/>.
23 ## 23 ##
24 ######################################################################## 24 ########################################################################
25 25
26 ## -*- texinfo -*- 26 ## -*- texinfo -*-
27 ## @deftypefn {} {} median (@var{x}) 27 ## @deftypefn {} {@var{y} =} median (@var{x})
28 ## @deftypefnx {} {} median (@var{x}, @var{dim}) 28 ## @deftypefnx {} {@var{y} =} median (@var{x}, @var{dim})
29 ## Compute the median value of the elements of the vector @var{x}. 29 ## Compute the median value of the elements of the vector @var{x}.
30 ## 30 ##
31 ## When the elements of @var{x} are sorted, say 31 ## When the elements of @var{x} are sorted, say
32 ## @code{@var{s} = sort (@var{x})}, the median is defined as 32 ## @code{@var{s} = sort (@var{x})}, the median is defined as
33 ## @tex 33 ## @tex
58 ## 58 ##
59 ## If the optional @var{dim} argument is given, operate along this dimension. 59 ## If the optional @var{dim} argument is given, operate along this dimension.
60 ## @seealso{mean, mode} 60 ## @seealso{mean, mode}
61 ## @end deftypefn 61 ## @end deftypefn
62 62
63 function retval = median (x, dim) 63 function y = median (x, dim)
64 64
65 if (nargin < 1) 65 if (nargin < 1)
66 print_usage (); 66 print_usage ();
67 endif 67 endif
68 68
86 endif 86 endif
87 87
88 n = size (x, dim); 88 n = size (x, dim);
89 k = floor ((n+1) / 2); 89 k = floor ((n+1) / 2);
90 if (mod (n, 2) == 1) 90 if (mod (n, 2) == 1)
91 retval = nth_element (x, k, dim); 91 y = nth_element (x, k, dim);
92 else 92 else
93 retval = sum (nth_element (x, k:k+1, dim), dim, "native") / 2; 93 y = sum (nth_element (x, k:k+1, dim), dim, "native") / 2;
94 if (islogical (x)) 94 if (islogical (x))
95 retval = logical (retval); 95 y = logical (y);
96 endif 96 endif
97 endif 97 endif
98 ## Inject NaNs where needed, to be consistent with Matlab. 98 ## Inject NaNs where needed, to be consistent with Matlab.
99 if (isfloat (x)) 99 if (isfloat (x))
100 retval(any (isnan (x), dim)) = NaN; 100 y(any (isnan (x), dim)) = NaN;
101 endif 101 endif
102 102
103 endfunction 103 endfunction
104 104
105 105