MATLAB Answers


Finding and removing NaN values in a matrix

Asked by Nancy
on 26 Sep 2011
Latest activity Commented on by Walter Roberson
on 3 Aug 2017
Hi Guys,
I am dealing with matrices of the size 1268*100. I wish to eliminate certain rows from this matrix. I do certain operations to get integer values for the rows that I want to keep and NaN value for the ones I dont. How can I get the rows that have NaN values and use these numbers to eliminate the rows that I dont want in my main matrix.
Eg. if my column matrix has the following values= [1 2 3 NaN 3 4 NaN 5 7 NaN]
So I will need to eliminate rows 4 7 and 10 in my main matrix.
How do I go about doing that.
Thanks, Nancy


Sign in to comment.


1 Answer

Answer by Walter Roberson
on 26 Sep 2011
 Accepted Answer

Is it only necessary to refer to column 1, or are there other columns that might have nans that signal removal ?
If column 1 alone is enough, then you can use
values(isnan(values(:,1)),:) = [];


Shubham Maurya, that is testing for nan in all of the columns an removing individual nan values rather than entire rows. The result would be a column vector because you cannot leave "holes" in a rectangular matrix.
Try this
Ahmed, that has the same problems I described for Shubham Maurya's suggestion.

Sign in to comment.