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

1 view (last 30 days)
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?

Answers (1)

Guillaume on 19 Aug 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!