crossco.m
来自「基于MATLAB的神经网络非线性系统辨识软件包.」· M 代码 · 共 43 行
M
43 行
function coefs = crossco(v,w,maxlag)
% crossco Calculate correlation coefficients.
%
% Cross-correlation coefficients:
% coefs = crossco(v,w)
% coefs = crossco(v,w,maxlag);
%
% Autocorrelation coefficients:
% coefs = crossco(v,v,maxlag);
%
% v and w are two signals contained in vectors of equal length.
% Default max. lag is 25 or the vector length-1.
% Written by Magnus Norgaard, IAU/IMM, DTU
% LastEditDate Jan. 23, 2000
if nargin>3 | nargin<2
error('Wrong number of arguments');
elseif nargin==2,
maxlag=25;
end
% Extract mean and make sure the vectors are column vectors
v = v(:)-mean(v);
w = w(:)-mean(w);
if length(v) ~= length(w)
error('v and w must have the same length');
end
maxlag = min(maxlag,length(v)-1); % Reduce maxlag if vectors are too short
normcoef=sqrt(sum(v.*v)*sum(w.*w));
coefs = zeros(maxlag+1,1); % Allocate vector for correlation function
for k=0:maxlag,
coefs(k+1) = sum(v(1:end-k).*w(k+1:end))/normcoef;
end
coefs2 = zeros(maxlag,1); % Allocate vector for correlation function
for k=1:maxlag,
coefs2(k) = sum(w(1:end-k).*v(k+1:end))/normcoef;
end
coefs = [flipud(coefs2);coefs];
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?