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 Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by