概述
背景
安装了新版本的matlab2021, 在用之前的代码做数据处理时报错,提示 NAN 的比较应该用 isnan 函数
情景
修改前,我是想利用 relieff 计算特征的分数(为了方便我叫他权重),但是 relieff 计算出来有负数和not a number(即所谓的 NaN)
,所以需要对该情况进行处理。
sampleNumber = size(TrainX_data,1); % 样本数
[~,weight] = relieff(TrainX_data,TrainY_data,sampleNumber,'method','classification');
weight(weight<0) = 0; % 把权重小于0的当成0
weight(weight == NaN) = 0; % 把nan的当成0
换成isnan 函数后
sampleNumber = size(TrainX_data,1); % 样本数
[~,weight] = relieff(TrainX_data,TrainY_data,sampleNumber,'method','classification');
weight(weight<0) = 0; % 把权重小于0的当成0
weight(isnan(weight)) = 0; % 把nan的当成0
补充
isnan(A)
和 A == NaN
其实都是一个意思,返回一个逻辑数组,若A的元素为NaN(非数值),在对应位置上返回逻辑1(真),否则返回逻辑0(假)。
示例
isnan([5 NaN Inf -Inf -10])
ans =
1×5 logical 数组
0 1 0 0 0
一般使用场景也是我开始的那样,对数据中的异常数据 NaN 做限制,或是去掉,或是用其他的填充(最小值填充,这一维度的均值填充,0填充等等)
最后
以上就是甜美蜜粉为你收集整理的笔记 matlab中isnan()函数和 ==NAN,的全部内容,希望文章能够帮你解决笔记 matlab中isnan()函数和 ==NAN,所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复