NaN是什么,怎么处理

您所在的位置:网站首页 MATLAB中lnf或inf表示 NaN是什么,怎么处理

NaN是什么,怎么处理

2023-07-27 04:25| 来源: 网络整理| 查看: 265

NaN (Not a Number)

NaN (不是一个数),当你处理不同,多种多样的数据时,会经常碰到NaN ,NaN 是0/0 或者是导入了一个字符串作为数值。也可能是无穷或者是当你插入了一个超出给定范围的数。接下来我们看下NaN 有啥性质,以及如何处理

A_var = [-8 10 NaN 9 4 -4 -7; 9 NaN 9 4 -10 9 0; -8 10 NaN 5 -10 -1 NaN] A_var = -8 10 NaN 9 4 -4 -7 9 NaN 9 4 -10 9 0 -8 10 NaN 5 -10 -1 NaN

先创造一个含NaN 的数组

>> sum(A_var)%sum()是一个可以算出每列和的函数 ans = -7 NaN NaN 18 -16 4 NaN

可以看出有NaN 的列和全为NaN

怎么把这NaN除去,第一个你自己手工找出索引 >> A_var([7 9 21])=[0, 0, 0] % All at once or % A_var([7 9 21])=0 > A_var = -8 10 0 9 4 -4 -7 9 0 9 4 -10 9 0 -8 10 0 5 -10 -1 0

然后你再试下sum() 或这

nansum()含NaN求和

试下

nansum(A_Var)

这里还有一堆关于NaN的函数,尝试自己去试下

nanmax(), nanmean(), nanmedian(), nanmin(), nanstd(), and nanvar()

找到NaN的位置 Index2=ismissing(A_var) %Identifies all missing elements hidden behind NaN >> A_var(Index2) ans = NaN NaN NaN NaN >> A_var(Index2)=0 >A_var = -8 10 0 9 4 -4 -7 9 0 9 4 -10 9 0 -8 10 0 5 -10 -1 0

或者用find()函数

B_var = randi([0, 25], 7); IndexB = find(B_var>3 & B_var



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3