2016-07-10 5 views
0

일부 배열에서 corrcoef Kendall, Spearman 및 Pearson을 계산하려고하는데 NaN을 출력합니다.matlab corrcoef 함수가 NaN을 반환합니다

누군가가 실패한 이유와 이유를 알 수있는 방법을 제안 할 수 있습니까? 배열이 너무 커서 각 요소를 볼 수 없기 때문입니다.

그렇지 않으면 corrcoef 전체 코드는 어디에서 찾을 수 있습니까? 나는 수색했으나 그것을 찾지 못한다.

+0

문제를 재현하는 최소한의 예제를 게시해야합니다. 정보를 제공하면 문제가 무엇인지 알기가 어렵습니다. 'corrcoef' 코드를 보려면'edit corrcoef'라고 입력하십시오. 그러나 원래 기능으로 모든 변경 사항을 저장하지 마십시오! 대신 다른 이름으로 저장 –

답변

1

입력 사항 중 대부분에 NaN이 포함되어 있습니다. 당신은 isnan를 사용하는 NaN 요소가 있는지 여부를 확인하고 find을 사용하여 인덱스를 찾을 수 있습니다

>> A = randn(10,1); 
>> A([3,8]) = NaN; 
>> find(isnan(A)) 
ans = 
    3 
    8 

소스 코드를 찾고에 관해서는, 당신은 당신의 편집기에서 함수 이름을 강조 ctrl+D를 누를 수 있습니다. 일부 기능은 빌트인 또는 mex이므로 소스 코드를 읽을 수 없습니다. 그러나 corrcoef은 그 중 하나가 아니므로 코드를 읽을 수 있습니다.

+0

글쎄, 배열에 NaN이없는 것 같습니다. 당신이 말한 코드를 넣으면 "Empty matrix : 0-by-1" –

+1

다음 문제를 재현하는 예제를 제공하십시오. –

+0

그리고 어떻게해야합니까? fprintf를 .txt 파일에 사용 하시겠습니까? 그냥 알고 유용합니다 –

0

하나의 배열에서 분산/표준 편차가 0이기 때문일 수 있습니다. 따라서 상관 계수 계산에서 std 나 var로 나눌 때 (구현되어 있지만) 실제로 0으로 나눠서 NaN을 산출합니다.

관련 문제