Home > matutils > nanmeanND.m

nanmeanND

PURPOSE ^

I got sick of typing:

SYNOPSIS ^

function a = nanmeanND(b,dims);

DESCRIPTION ^

  I got sick of typing:

  a = nanmean(nanmean(nanmean(nanmean(b,dims))))

  this is a lazy way for doing the mean over all 
  dimensions of the input matrix b (if dims is not
  specified).

  or, specify the dimensions to average.

  if dims is just a number, it averages the 
  first dims dimensions (e.g. dims=3 averages
  the first 3 dimensions).

  if dims is a matrix, it averages over those
  dimensions specified (e.g. dims=[1 2 4] skips
  3rd dimension).

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function a = nanmeanND(b,dims);
0002 
0003 %  I got sick of typing:
0004 %
0005 %  a = nanmean(nanmean(nanmean(nanmean(b,dims))))
0006 %
0007 %  this is a lazy way for doing the mean over all
0008 %  dimensions of the input matrix b (if dims is not
0009 %  specified).
0010 %
0011 %  or, specify the dimensions to average.
0012 %
0013 %  if dims is just a number, it averages the
0014 %  first dims dimensions (e.g. dims=3 averages
0015 %  the first 3 dimensions).
0016 %
0017 %  if dims is a matrix, it averages over those
0018 %  dimensions specified (e.g. dims=[1 2 4] skips
0019 %  3rd dimension).
0020 
0021 if nargin < 2
0022   dims=ndims(b);
0023 end
0024 
0025 if size(dims,2)==1
0026   dims=1:dims;
0027 end
0028 
0029 dims
0030 
0031 thingToEval='a = ';
0032 
0033 for i=1:size(dims,2)
0034     thingToEval = [thingToEval,'nanmean('];
0035 end
0036 
0037 thingToEval = [thingToEval,'b'];
0038 
0039 for i=1:size(dims,2)
0040     thingToEval = [thingToEval,',',num2str(dims(i)),')'];
0041 end
0042 
0043 thingToEval
0044 eval([thingToEval,';']);
0045 
0046

Generated on Sun 14-Jun-2015 17:12:45 by m2html © 2005