- crosscorr function requires two vector inputs. Ain01_correct(i,2) it is not (it is a number). Notice also that AinO1_incorrect(:,2) is just the second column of your matrix (not a row).
- correlationAinO1 = z'; what is that???
Cross correlation Between two matrices row by row
7 次查看(过去 30 天)
显示 更早的评论
Good morning, I have a problem with the cross correlation (crosscorr command), I'm trying to do a cross correlatation btw 2 matrices with dimension 96*3000, and I wrote this small loop:
[r, c] = size(AinO1_correct);
for i=1:r
[xcf,lags,bounds]=crosscorr(AinO1_correct(i,2) , AinO1_incorrect(:,2));
correlationAinO1 = z';
end
but i got this error 'First series must be a vector.' I don't know what is wrong could please help me?
0 个评论
采纳的回答
Massimo Zanetti
2017-2-23
编辑:Massimo Zanetti
2017-2-23
There are some issues in your code.
I assume what you want is:
[r, c] = size(AinO1_correct);
for i=1:r
[xcf,lags,bounds]=crosscorr(AinO1_correct(i,:) , AinO1_incorrect(i,:));
end
notice that arguments of crosscorr function are row vectors from your matrices.
IMPORTANT check the size of the two matrices is the same before running the code.
2 个评论
Massimo Zanetti
2017-2-23
编辑:Massimo Zanetti
2017-2-23
This is due to the fact that having not supplied the number of lags, MATLAB uses a default value numLags=20. Then, the output size is 20*2+1, accordingly.
This is explained in the help page of the function crosscorr, read carefully paragraphs related to numLags input and xcf,lags outputs.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Particle & Nuclear Physics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!