Dropping NaN observations from Matrix

Hey There.
So i have a matrix that has a person ID for the first column, then data in the rows for each. What i need to do is i have identified that there are some observations that are NaN, so i need to write a code that identifies which person ID have NaN observations, so that i can drop those observations from the data.
Any help could be appreciated

답변 (2개)

Kevin Phung
Kevin Phung 2019년 1월 23일
편집: Kevin Phung 2019년 1월 23일

0 개 추천

if you had a matrix A and wanted to search for NaNs in each row
nanRows =[];
for i = 1:size(A,1)
if any(isnan(A(i,:))) % for each row, if any of the elements contain a NaN
nanRows(i) = i;% store that index
end
end
A(nanRows,:) = []; %remove those IDs from your matrix
if your matrix is of cell arrays, then replace parentheses with {}.
edit: before you run A(nanRows,:) =[] , you can check which IDs had Nans with just A(nanRows,1)

댓글 수: 2

No loop needed.
A(any(isnan(A),2),:) = [];
Kevin Phung
Kevin Phung 2019년 1월 23일
never noticed any() can take two arguments, that's neat! Thanks Walter.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 NaNs에 대해 자세히 알아보기

태그

질문:

2019년 1월 23일

댓글:

2019년 1월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by