数学建模社区-数学中国
标题:
求:用MATLAB求自相关系数
[打印本页]
作者:
梓爱
时间:
2012-7-13 11:35
标题:
求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢
" d' E5 h) r& h- i
function r=cor_self(x,p,q)
M: b" V X; }/ J. x8 J* Q: j
%连续计算一个序列(列向量)的自相关系数,其中滞后时间k由p变化到q
1 i9 d8 ] @* W" c" C7 Z5 u
clc;close all;
6 b: P) O+ p6 P/ r& G
n=size(x,1);
( s, T) @# ?! A3 f$ ]1 v" P
for k=p:q
. M+ t) {$ r7 z5 b
sum=0;
z/ v" q- e# k* u
for i=1:n-k
) _+ n8 d q# \7 d$ n) q- p. ?) U
sum=sum+(x(i)-mean(x(1:n-k)))*(x(i+k)-mean(x(1+k:n)));
5 w; B% k, R" i. t8 T- }
end
0 M \) N4 h8 I( k% X2 M
r(k+1)=sum/std(x(1:n-k))/std(x(1+k:n))/(n-k);
$ o. c, l' x! j; ], q, [
end
6 ]* c8 A3 _5 w- R
k=[p:q];
+ P4 a, j( s6 `( [
plot(k,r,'-*');
6 f- C) e+ v8 f5 A
refline(0,0);
6 \/ p4 | L# Y, F/ y
end
+ v3 w7 ]8 [+ v* Q6 R. `( h- x
运行显示
" @& t. N* u" D9 J6 h) D
Error using ==> plot
: V, O/ [4 \% ~) l* F- J
Vectors must be the same lengths.
" Q9 m4 @9 A, c. k5 q# t
' e; a1 v. B2 ~# d
Error in ==> cor_self at 13
0 B- J+ e- t, Q/ V) N) s0 a
plot(k,r,'-*');
作者:
zjqylcy
时间:
2012-7-13 16:31
k r 长度不一样 应该是r多了一位 可以进workspace里面看看
作者:
梓爱
时间:
2012-7-15 10:13
zjqylcy 发表于 2012-7-13 16:31
( l- r& c8 J$ C' @0 I
k r 长度不一样 应该是r多了一位 可以进workspace里面看看
* q1 X) v# k/ j! D2 H/ o
这个后来我又试了下,是矩阵的问题,x的输入应该是列向量的形式,不过k的范围是怎么确定的呀,我输入的是从0到12,可是出来的结果第十一和第十二的数显示为naf,帮忙解释下吧,谢谢了~~
作者:
zjqylcy
时间:
2012-7-16 10:49
我看不太明白的是 你前面K是一个变 后面K又成了一个矩阵
% b- l5 ~2 R" @+ ^- W
naf一般就是分母为0了
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5