我是靠谱客的博主 甜美蜜粉,最近开发中收集的这篇文章主要介绍笔记 matlab中isnan()函数和 ==NAN,,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景

          安装了新版本的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,所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部