我有一个维度为2231548x1的矩阵,大部分值都是NaN。但是,有些值介于0到1之间。我不想使用isfinite(Matrix)
,而只需要将NaN值设置为0,其余值为0(例如,0.345,0.967..etc)。
我怎么能这样做?
答案 0 :(得分:2)
您可以像这样使用isnan()
:
myMatrix(isnan(myMatrix))=0;
快速解释:isnan()
如果其参数的1
- 元素为{{1},则在元素true
中返回j
(逻辑j
) }}。通过这种方式,您依赖于逻辑索引,您基本上会说:如果您在NaN
中找到一些NaN
,请返回myMatrix
(1
),然后替换这些元素(标记为as true
,即true
},其中0(double 0,非逻辑0)。 not NaN
值将NaN
返回false
,因此逻辑索引不会触及它们。