시뮬레이션 데이터는 NaN과 NaN이 아닌 50,000 x 1 크기의 벡터에 있습니다. 비 NaN을 평균하고 싶지만, 함수 nanmean은 NAN을 반환합니다. NAN을 제거하려고 시도했지만, 단지 0의 벡터 만 얻습니다. 시각적 검사를 통해이 벡터의 진정한 의미가 실제로 NaN인지 의심 스럽습니다.Matlab은 NaN과 NaN이 아닌 벡터에서 NAN 만 리턴합니다.
또한이 벡터를 사용하여 여러 다른 벡터와 공분산을 계산하고 싶습니다 (어느 시점에서). 나의 대안은 Excel에서 이것을하는 것이고 그것은 고통 스러울 것이다.
의견이 있으십니까?
meanA = mean(A(isfinite(A)));
또한 NaN을 반환합니다. 이것이 내 벡터의 진정한 평균이 실제로 NaN이라는 것을 의미합니까? 나는 이것이 사실이라고 믿는 데 어려움을 겪는다. –
이 코드는 NaN이 아닌 모든 요소를 선택합니다. 그래도 NaN 결과를 얻으면 벡터에 유한 요소가 포함되지 않습니다. 'size (A (~ isnan (A)))'를 시도하면 어떻게됩니까? – craigim
어떤 이유에서든 벡터가'-Inf'뿐만 아니라'Inf'도 포함하고 있다면,'NaN'을 제거해도 평균값은'NaN'이 될 수 있습니다. 'Inf'와'-Inf'가 합쳐지면'NaN'이 생성됩니다. –