数学建模社区-数学中国
标题:
求:用MATLAB求自相关系数
[打印本页]
作者:
梓爱
时间:
2012-7-13 11:35
标题:
求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢
% v% [! j& d" W& x5 j3 z; |/ }: ^
function r=cor_self(x,p,q)
! j/ p+ j6 X$ Q/ z
%连续计算一个序列(列向量)的自相关系数,其中滞后时间k由p变化到q
5 K& c- m& J5 I) f! k6 L
clc;close all;
# E0 R) S# h$ e/ D8 D
n=size(x,1);
$ A8 v9 D) T8 y/ ^2 G
for k=p:q
, P1 H: U0 I6 u1 ^; L( O
sum=0;
$ j9 ?% a/ F$ j$ H" M! L
for i=1:n-k
& h( s6 u4 T$ |/ b0 S+ V' C/ r
sum=sum+(x(i)-mean(x(1:n-k)))*(x(i+k)-mean(x(1+k:n)));
. o5 v% G8 w/ p) z
end
# P5 y4 n- m( e, q9 b+ b
r(k+1)=sum/std(x(1:n-k))/std(x(1+k:n))/(n-k);
$ k1 T% D/ X% F% a R- F
end
' h- h1 o0 b* Q7 A' r) R. p
k=[p:q];
9 z+ W8 b- z- n5 ^2 H2 {
plot(k,r,'-*');
2 T% F, v q f) B6 U
refline(0,0);
4 _' d! G# \8 D# m7 E7 M
end
5 X. c+ ~3 v% p8 _% R# [
运行显示
) ]) O% W- M( t: U O/ ^ h
Error using ==> plot
2 a; k2 a3 Q; w% }( n2 v
Vectors must be the same lengths.
7 }7 E5 _0 ~3 R# o
- X3 G! t i/ B6 ~$ |4 a
Error in ==> cor_self at 13
( A6 w9 D3 G/ {/ ]- B f! D& X
plot(k,r,'-*');
作者:
zjqylcy
时间:
2012-7-13 16:31
k r 长度不一样 应该是r多了一位 可以进workspace里面看看
作者:
梓爱
时间:
2012-7-15 10:13
zjqylcy 发表于 2012-7-13 16:31
" x: E: J8 ?, ^
k r 长度不一样 应该是r多了一位 可以进workspace里面看看
2 J V' t& |. b R+ X+ e" N6 J
这个后来我又试了下,是矩阵的问题,x的输入应该是列向量的形式,不过k的范围是怎么确定的呀,我输入的是从0到12,可是出来的结果第十一和第十二的数显示为naf,帮忙解释下吧,谢谢了~~
作者:
zjqylcy
时间:
2012-7-16 10:49
我看不太明白的是 你前面K是一个变 后面K又成了一个矩阵
`- s- R( @* T8 x* n* e
naf一般就是分母为0了
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5