matlab - 为什么替换矩阵的 NaN 不适用于 k(k==NaN) = SomeNumber ,其中 k 是要操作的矩阵

标签 matlab

给定一个矩阵:-

k = [1   2   3  ;
     4   5   6  ;
     7   8  NaN];

如果我想用 0 替换一个数字,比如 2,我可以使用这个:k(k==2) = 0。它工作正常并给出以下预期答案:-

k =

     1     0     3
     4     5     6
     7     8   NaN

但是,如果我尝试替换 NaN,为什么这不起作用,即 k(k==NaN) = 0 给出了这个:

k =

     1     2     3
     4     5     6
     7     8   NaN

虽然我能够使用以下方法获得所需的结果:k(isnan(k))=0。但为什么第一种方法不起作用?

最佳答案

因为 NaN==NaN0

不是数等于不是数?不是真的,它们不是数字,但不一定是同一件事。这是设计使然。

0/0 == Inf-Inf 吗?绝对不是。不过两者都是 NaN

Read more here

关于matlab - 为什么替换矩阵的 NaN 不适用于 k(k==NaN) = SomeNumber ,其中 k 是要操作的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38587351/

相关文章:

matlab - 如何在 MATLAB 中将索引图像的颜色图更改为 HSV 颜色图

matlab - 调试时仅针对特定循环索引

MATLAB - 使用 'clear' 时运行对象析构函数?

excel - 如何从散点图点到水平轴绘制线条

matlab - 制作以 x 轴为基线的 3D 茎图?

matlab - 分类:处理弃权/拒绝类别

MATLAB:将 uint32(4 字节)值转换为相应的 IEEE 单精度浮点形式

arrays - MATLAB 矩阵预分配比动态矩阵扩展慢

git 在 checkout 另一个分支时删除目录失败,目录名称前面有一个加号 "+"

matlab - 如何在Matlab中输入3D矩阵?