我有一个关于xcorr
函数的问题。两个矩阵之间的xcorr
目前此功能可以计算矩阵的自相关性,但无法计算的2点矩阵的互相关:
A=[1,2;3,4];
B=[5,6;7,8];
xcorr(A); %% Possible
xcorr(A,A); %% Not Possible
xcorr(A,B); %% Not Possible
你知道什么解决办法要做到这一点,但没有使用for
循环?
我有一个关于xcorr
函数的问题。两个矩阵之间的xcorr
目前此功能可以计算矩阵的自相关性,但无法计算的2点矩阵的互相关:
A=[1,2;3,4];
B=[5,6;7,8];
xcorr(A); %% Possible
xcorr(A,A); %% Not Possible
xcorr(A,B); %% Not Possible
你知道什么解决办法要做到这一点,但没有使用for
循环?
xcorr
基本上有两种语法。
c = xcorr(x, y)
计算两个标量信号之间的互相关函数(给定为载体),和
c = xcorr(x)
计算如果x
是矢量的信号的自相关函数,并且自动并且如果它是矩阵,则在所有列x
之间具有互相关函数。如果x
的大小为n
x p
,则c
的大小为2*n-1
x p^2
。
当你写
c = xcorr(x, y);
与两个矩阵x
和y
,我假设你想在x
与y
所有信号的所有信号之间的互相关函数。 xcorr
无法做到这一点。但是,如果两个矩阵都有n
行,你可以写
c = xcorr([x, y]);
得到了在x
或y
所有信号之间的自相关和互相关函数。 c
的大小为2*n-1
x (p1+p2)^2
,其中p1
和p2
是两个矩阵中的信号(列)的数量。然后可以重塑和截断结果:
c = reshape(c, 2*n-1, p1+p2, p1+p2);
c = c(:, 1 : p1, p1+1 : end);
其结果是,其中第一维对应于滞后的三维矩阵,第二枚举信号x
和第三枚举y
的信号;其大小为2*n-1*
x p1
x p2
。
谢谢Donda,那正是我需要的 – Yann
不客气! –