How can I convert back the _FillValue elements from zero to NaN

2 vues (au cours des 30 derniers jours)
Szabó-Takács Beáta
Szabó-Takács Beáta le 19 Août 2015
I have A matrix which contains NaN as a _FillValues and inf values. I wanted to convert the inf values to zero by:
A(~isfinite(A)) = 0.
This function changed the NaN values to zero. I tried get back NaN values by the following functions:
A(isnan(A)) = nan
A(A == attval3) = nan
But the NaN values remain zero. How can I convert back the _FillValue elements to NaN?

Réponses (1)

Guillaume
Guillaume le 19 Août 2015
Well, once you've replaced the NaNs in A by 0, isnan(A) is never going to find any NaN. Unless you've kept a copy of the original A around there's no way to find out where they were.
To replace just the Inf and not the NaN in the unmodified, original A, use isinf:
A(isinf(A)) = 0; %or A(~isnan(A) & ~isfinite(A))

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by