NaN是什么,怎么处理 --matlab
·
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<9)

用类似的find方法去找index就行
「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地的深度研讨。 加入智能机器人开发者社区iRobot Developer,与全球极客并肩突破技术边界,定义机器人开发的未来范式!
更多推荐



所有评论(0)