I have many large column matrices (each is ~20k x 1). Some elements of the matrices are NaN. I want to replace them with 0 (or some number). Is there a quick way for that. Looping through each element is a very inefficient process and delays my program. The help is really appreciated.

 Réponse acceptée

Guillaume
Guillaume le 27 Juin 2016
Modifié(e) : Guillaume le 27 Juin 2016

2 votes

yourmatrix(isnan(yourmatrix)) = somevalue;
But, using NaN to mark exceptional values is much better than using 0 or some other special value.

2 commentaires

Mehul Agrawal
Mehul Agrawal le 27 Juin 2016
Thanks a lot. I actually wanted to do some additions of these matrices and having NaN ignores all other calculations and I will end up having NaN. For my purpose 0 is actually a unique value too (just eligible for calculations).
Steven Lord
Steven Lord le 27 Juin 2016
For a couple releases now the sum function has accepted a flag that lets you specify whether NaN values should be included in the sum (which makes the sum NaN) or excluded (unless all the values being summed are NaN.)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by