1
我有一個尺寸爲2231548x1的矩陣,大部分值都是NaN。但是,一些值介於0到1之間。我不想使用isfinite(Matrix)
,而只需要將NaN值設爲0,其餘值爲0.345,0.967..etc。通過保持值中的其他值不變來更換矩陣中的NaN值
我該怎麼做?
我有一個尺寸爲2231548x1的矩陣,大部分值都是NaN。但是,一些值介於0到1之間。我不想使用isfinite(Matrix)
,而只需要將NaN值設爲0,其餘值爲0.345,0.967..etc。通過保持值中的其他值不變來更換矩陣中的NaN值
我該怎麼做?
您可以使用isnan()
這樣的:
myMatrix(isnan(myMatrix))=0;
一個快速的解釋:isnan()
回報1
(邏輯true
)的元素j
如果其參數的j
個元素是NaN
。以這種方式,您依賴於邏輯索引,並且基本上說:如果您在myMatrix
中找到一些NaN
,則返回1
(true
),然後將這些元素(標記爲true
,即用NaN
)替換爲0(雙0,不是邏輯0)。 NOT-NaN
值將作爲false
由isnan()
返回,因此邏輯索引不會觸及它們。
謝謝,這工作! :) – MedImage
你絕對受歡迎! – Alessiox