Find row with NaN in it.

124 Ansichten (letzte 30 Tage)
Artyom
Artyom am 17 Aug. 2014
Kommentiert: sworland am 9 Dez. 2015
I have variable X.
X=[2 4 6;
4 5 NaN
3 NaN NaN
5 8 12
3 8 NaN];
How to find any row with NaN in it. ismember([3 8 NaN],X,'rows') gives me 0.
  1 Kommentar
Artyom
Artyom am 17 Aug. 2014
I mean how to find specific row in the matrix (for example 'find' [3 8 NaN] must return me [0;0;0;0;1];).

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

per isakson
per isakson am 17 Aug. 2014
Bearbeitet: per isakson am 17 Aug. 2014
A start:
is(:,1) = X(:,1)==3;
is(:,2) = X(:,2)==8;
is(:,3) = isnan( X(:,3));
all( is, 2 )
which returns
ans =
0
0
0
0
1
AFAIK: isnan is the only way to spot NaN.
I don't think there is a magic one-liner. A little function along the example above is one way. Loop over all columns, ....

Weitere Antworten (3)

Guillaume
Guillaume am 17 Aug. 2014
[rows, columns] = find(isnan(X));
unique(row);
will give you the row indices
  1 Kommentar
sworland
sworland am 9 Dez. 2015
simple and fast, 1 upvote

Melden Sie sich an, um zu kommentieren.


Roger Stafford
Roger Stafford am 17 Aug. 2014
Bearbeitet: Roger Stafford am 17 Aug. 2014
The code
t = any(isnan(X),2);
will return you a column vector of logicals in which each element is true if the corresponding row of X contains a NaN. I trust that would meet your needs. In your example you would get t = [false;true;true;false;true].

Andrei Bobrov
Andrei Bobrov am 17 Aug. 2014
Bearbeitet: Andrei Bobrov am 17 Aug. 2014
X=[2 4 6;
4 5 NaN
3 NaN NaN
5 8 12
3 8 NaN];
с = [3 8 NaN];
z = [X;c];
z(isnan(z)) = max(z(:)) + 1;
out = ismember(z(1:end-1,:),z(end,:),'rows');
other example
X = randi(100,200,15);
X([5,125],[2,10]) = nan; % your array
c = X(5,:);
z = [X;c];
z(isnan(z)) = max(z(:)) + 1;
out = ismember(z(1:end-1,:),z(end,:),'rows');

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by