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.

 采纳的回答

Cedric
Cedric 2015-7-28
编辑:Cedric 2015-7-28
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 个评论

... 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
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

请先登录,再进行评论。

更多回答(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 个评论

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.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by