Index of NaN Values

162 views (last 30 days)
Tiago Dias
Tiago Dias on 23 Jul 2018
Edited: Walter Roberson on 23 Jul 2018
Hello,
My objective is to know the index of NaN values per column.
y = [1,2;NaN,4;5,NaN;7,8;9,NaN]
idx = isnan(y)
for j = 1:m
for i = 1:n
if idx(i,j) == 1
idx_all(i,j) = i
end
end
end
I get a result of
idx_all = 0 0
2 0
0 3
0 0
0 5
I would like the result to be something like
idx = [2 3
0 5]
Because the 1st column has just one NaN on row 2, and the 2nd column has NaN for row 3 and 5.
Thanks.
  2 Comments
jonas
jonas on 23 Jul 2018
Is it really necessary to save the indices in that form? You should read about the find function.
Tiago Dias
Tiago Dias on 23 Jul 2018
yeah, but i would like to eliminate the zeros as well.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 23 Jul 2018
A loop is easiest.
nc = size(y,2);
idx = zeros(0, nc);
for C = 1 : nc
nidx = find(isnan(y(:,C)));
idx(1:length(nidx), C) = nidx;
end

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!