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 commentaires

jonas
jonas le 23 Juil 2018
Is it really necessary to save the indices in that form? You should read about the find function.
Tiago Dias
Tiago Dias le 23 Juil 2018
yeah, but i would like to eliminate the zeros as well.

Connectez-vous pour commenter.

 Réponse acceptée

Walter Roberson
Walter Roberson le 23 Juil 2018

0 votes

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

Plus de réponses (0)

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by