一个nan引发的“血案”

MATLAB的sum和nansum,mean与nanmean在处理包含NaN值的数据时有显著区别。nansum和nanmean会忽略NaN值进行计算。如果数据的某一行或某一列全为NaN,sum的结果保持为NaN,而nansum的结果是0。同样,mean和nanmean在遇到全NaN维度时都会返回NaN。理解这种差异对于正确处理数据至关重要,避免因忽视而导致错误结果。
摘要由CSDN通过智能技术生成

在使用matlab以下两组函数时请务必注意:

  • sum 和 nansum
  • mean 和 nanmean

这两个的区别相对好理解,后者其实是指将矩阵中的NaN(空值去掉之后)再进行求解和平均;但我想说的是,注意!

Note: If X contains a vector of all NaN values along some dimension, the vector is empty once the NaN values are removed, so the sum of the remaining elements is 0. The output 0 is not a sum of NaN values.

data =
     1   NaN   NaN
   NaN     2   NaN
   
>> nansum(data)
ans =
     1     2     0
     
>> sum(data)
ans =
   NaN   NaN   NaN
data =
     1   NaN   NaN
   NaN     2   NaN

>> nanmean(data)
ans =
     1     2   NaN

>> mean(data)
ans =
   NaN   NaN   NaN

【敲黑板】

  1. 如果数据的某一维全是 NaN, 则sum计算的结果当然仍然是NaN, 但是nansum计算的结果却是0,请勿小看这个0,如果不注意,会直接影响结果!

  2. 对于mean 和 nanmean,上述情况存在时,结果都是NaN

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨海深

感谢您的支持和鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值