Can we sum a series of values,even some of them are "NaN"?If i want to do it,how can i do?

1 次查看(过去 30 天)
I get a series answer of optimal problem in several times,and i want to sum of them and average them,however, some of them are "NaN",can i or how to write a code to ignore those "NaN" and sum the others which is not "NaN" ?
The version of matlab is 2015a

采纳的回答

Walter Roberson
Walter Roberson 2019-3-26
You did not indicate your MATLAB version.
For a couple of years now, you have been able to write sum(TheArray, 'omitnan') .
Before that, the easiest approach was to use the Statistics toolbox nansum()
mean() these days also has 'omitnan' flag, and in older versions the Stats tool was nanmean()
  2 个评论
yang-En Hsiao
yang-En Hsiao 2019-3-26
编辑:yang-En Hsiao 2019-3-26
Thanks for information,i have edited the question,if there is a vector call A
A=[1 2 3 4 5 6 7 8 9 NaN]
ANSwess=nansum(A)
The window will show me ANSwess=45,but why when i write the code as
A=[1 2 3 4 5 6 7 8 9 NaN]
ANSwess=nansum(A(1:9)+A(end))
The window will show me ANSwess=45,same result as sum(A)?
Walter Roberson
Walter Roberson 2019-3-26
That last line returns 0 for me. A(end) is Nan, and adding nan to each A(1:9) entry gives nan for each result, so you would be applying nansum to an all-nan vector, and the result of that is going to be 0.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by