How to calculate reveral summations
1 回表示 (過去 30 日間)
古いコメントを表示
I need to calculate sigma=sum(u(t)*u(t+a)), from a to 600(t=a to 600), and a is from 1 to 600. So I should get 600 different sigma.
How to do it?
3 件のコメント
Walter Roberson
2021 年 2 月 24 日
Is it correct that u is least length 600+h, so that u(t+h) can be in range for indexing when t becomes 600 ?
回答 (2 件)
Matt J
2021 年 2 月 23 日
Use conv() or xcorr().
8 件のコメント
Walter Roberson
2021 年 2 月 24 日
Y = circshift(A,K) circularly shifts the elements in array A by K positions. If K is an integer, then circshift shifts along the first dimension of A whose size does not equal 1. If K is a vector of integers, then each element of K indicates the shift amount in the corresponding dimension of A.
I don't think you have 600 dimensions to your u .
If you did not get an error when you did the xcorr() then that implies that u and y must both have been vectors.
The example in doc xcorr for Cross-Correlation of Two Vectors shows a vector of length 16 correlated with a modified version of itself. The output is length 31, reflecting a lag up to (16-1) before, and a lag up to (16-1) after, for a total of (16-1) + 1 + (16-1) = 2*16-1 .
Therefore for a vector of length 600, you should expect a length of 2*600-1 = 1199 for the output.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!