通过保持值中的其他值不变,替换矩阵中的NaN值

时间:2016-02-12 16:56:05

标签: matlab matrix nan

我有一个维度为2231548x1的矩阵,大部分值都是NaN。但是,有些值介于0到1之间。我不想使用isfinite(Matrix),而只需要将NaN值设置为0,其余值为0(例如,0.345,0.967..etc)。

我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您可以像这样使用isnan()

myMatrix(isnan(myMatrix))=0;

快速解释:isnan()如果其参数的1 - 元素为{{1},则在元素true中返回j(逻辑j) }}。通过这种方式,您依赖于逻辑索引,您基本上会说:如果您在NaN中找到一些NaN,请返回myMatrix1),然后替换这些元素(标记为as true,即true},其中0(double 0,非逻辑0)。 not NaN值将NaN返回false,因此逻辑索引不会触及它们。