matlab

행렬에서 NaN 값 인덱스/ 제거

humming_stereo 2023. 2. 20. 10:34

인덱스 방법

행렬에서 NaN값을 찾을 때 쉬운 방법을 찾았다.

 

기존의 방법은 행렬의 NaN값의 존재 여부를 확인하고 find를 통해 NaN 값을 인덱싱 했다.

data = [10 20 10 5 7 nan 2 nan];
 
a1 = isnan(data);
a2 = find(a1 == 1);


find 의 기능 중 추가적인 조건이 없을 때,

참값(1)을 자동으로 인덱싱 해주는 기능이 있는 것을 알았다.

따라서

data = [10 20 10 5 7 nan 2 nan];
 
a = find(isnan(data));

이렇게 짧으면서도 가시성이 높아졌다.


제거 방법

단순히 nan값만 제거하길 원하는 경우, rmmissing 함수를 사용한다.

data = [10 20 10 5 7 nan 2 nan];
 
a = rmmissing(data);