X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fnan-2.5.5%2Fmad.m;fp=octave_packages%2Fnan-2.5.5%2Fmad.m;h=cf174db3e98f5c9c5b1f187afa11b09bc7e7ede7;hp=0000000000000000000000000000000000000000;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/nan-2.5.5/mad.m b/octave_packages/nan-2.5.5/mad.m new file mode 100644 index 0000000..cf174db --- /dev/null +++ b/octave_packages/nan-2.5.5/mad.m @@ -0,0 +1,64 @@ +function R = mad(i,DIM) +% MAD estimates the Mean Absolute deviation +% (note that according to [1,2] this is the mean deviation; +% not the mean absolute deviation) +% +% y = mad(x,DIM) +% calculates the mean deviation of x in dimension DIM +% +% DIM dimension +% 1: STATS of columns +% 2: STATS of rows +% default or []: first DIMENSION, with more than 1 element +% +% features: +% - can deal with NaN's (missing values) +% - dimension argument +% - compatible to Matlab and Octave +% +% see also: SUMSKIPNAN, VAR, STD, +% +% REFERENCE(S): +% [1] http://mathworld.wolfram.com/MeanDeviation.html +% [2] L. Sachs, "Applied Statistics: A Handbook of Techniques", Springer-Verlag, 1984, page 253. +% +% [3] http://mathworld.wolfram.com/MeanAbsoluteDeviation.html +% [4] Kenney, J. F. and Keeping, E. S. "Mean Absolute Deviation." ยง6.4 in Mathematics of Statistics, Pt. 1, 3rd ed. Princeton, NJ: Van Nostrand, pp. 76-77 1962. + +% $Id: mad.m 8223 2011-04-20 09:16:06Z schloegl $ +% Copyright (C) 2000-2002,2010 by Alois Schloegl +% This is part of the NaN-toolbox. For more details see +% http://pub.ist.ac.at/~schloegl/matlab/NaN/ + +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; If not, see . + +if nargin==1, + DIM = find(size(i)>1,1); + if isempty(DIM), DIM=1; end; +end; + + +[S,N] = sumskipnan(i,DIM); % sum +i = i - repmat(S./N,size(i)./size(S)); % remove mean +[S,N] = sumskipnan(abs(i),DIM); % + +%if flag_implicit_unbiased_estim; %% ------- unbiased estimates ----------- + n1 = max(N-1,0); % in case of n=0 and n=1, the (biased) variance, STD and STE are INF +%else +% n1 = N; +%end; + +R = S./n1; + +