nansum for double or single -> why error?

hi :)
can please someone explain to me how I can use nansum for a vector? I always get this error:
Undefined function 'nansum' for input arguments of type 'single'.
same for double >> in what datatype do I have to transform the data?
Thx for ur help.

 Accepted Answer

Cedric
Cedric on 28 Jul 2015
Edited: Cedric on 28 Jul 2015
Are you using a version of MATLAB anterior to 2006a? Evaluate ver or version to check. Or maybe you shadowed the function by naming a variable nansum by mistake during your tests. To check, evaluate
which nansum
and see if you get something like
C:\Program Files\MATLAB\R2015b\toolbox\stats\stats\nansum.m

3 Comments

... thx didn't know that this function requires a toolbox licence :S
C:\Program Files\MATLAB\R2015a\toolbox\stats\stats\nansum.m % Has no license available
Cedric
Cedric on 28 Jul 2015
Edited: Cedric on 28 Jul 2015
Ok, we can help you implement something similar "by hand" if you need (?)
Well, here is one way to do it:
function s = nansum( A, varargin )
A(isnan( A )) = 0 ;
s = sum( A, varargin{:} ) ;
end

Sign in to comment.

More Answers (1)

Marco, since you're using release R2015a (according to your comment on Cedric's answer) you can use SUM with the appropriate nanflag input argument instead of NANSUM.
x = [1:10 NaN];
sum(x, 'omitnan')

3 Comments

I had never realized that this flag was implemented, thank you for the update!
Not only does SUM accept this flag, but so do a number of the other basic statistical calculation functions. For a full list, see the second item in the Mathematics section of the release R2015a Release Notes for MATLAB.
Thank you Steven! I obviously don't spend enough time reading release notes.

Sign in to comment.

Categories

Asked:

on 28 Jul 2015

Commented:

on 28 Jul 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!