Compute the Cross-correlation coefficient out of one Vector
조회 수: 2 (최근 30일)
이전 댓글 표시
Hello everyone,
I got one vector with 100000 random numbers (100000X1) that each value is at a different time - representing a random process.
I need to calculate the Cross-correlation coefficient without using the "corr" function between the original process and the time-transmitted procedures, 0 to 15-time shifts. (Between x [t] and x [t + k], k = 0,1, ... 15).
I was thinking of using a for loop to make 14 more different Vectors and make them all one matrix and then calculate the Cross-correlation coefficient.
but I don't know to make those 14 different vectors, also - I don't know if that is the right way to do it.
Thank you.
댓글 수: 0
채택된 답변
Alan Stevens
2020년 8월 15일
If your data is in a vector V, then the following should do it:
coeff = zeros(1,16);
for k = 1:16
lag = k-1;
v1 = V(1:end-lag);
v2 = V(k:end);
v1scaled = (v1 - mean(v1))/std(v1);
v2scaled = (v2 - mean(v2))/std(v2);
coeff(k) = v1scaled'*v2scaled/(n-1);
end
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!