数学建模社区-数学中国

标题: 求:用MATLAB求自相关系数 [打印本页]

作者: 梓爱    时间: 2012-7-13 11:35
标题: 求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢% m1 S: P8 G; t0 D4 \& }2 ^) q
function r=cor_self(x,p,q); A, }4 P8 L0 x$ i' A
%连续计算一个序列(列向量)的自相关系数,其中滞后时间k由p变化到q
3 F: j) P* H& E3 Z8 c) Iclc;close all;
. f6 P- _3 b+ E' un=size(x,1);
( V  }2 Y/ y$ s; n( }" mfor k=p:q+ J5 M1 g1 L3 H" a8 e' W4 j
    sum=0;
  Y" ~! M6 D: J* R, {& m: q; ~    for i=1:n-k9 [2 U0 ~8 E9 h
        sum=sum+(x(i)-mean(x(1:n-k)))*(x(i+k)-mean(x(1+k:n)));- C5 B/ k; ]+ W
    end
2 v7 a, K0 [7 q# B! o  {    r(k+1)=sum/std(x(1:n-k))/std(x(1+k:n))/(n-k);
* H- |! b+ W( X4 r% _end
# _6 j; K" `5 w7 b3 p6 {k=[p:q];* @: C! k/ @$ k! {1 ~
plot(k,r,'-*');
+ n. H! u3 g. P2 m6 n( mrefline(0,0);
/ a+ G; g8 t* aend
- Y0 G  @3 e% n+ Y$ |  d9 b运行显示
4 c7 d, h; r. M/ `$ g$ _! P$ PError using ==> plot3 Y$ v2 U7 L5 |3 y0 `* P
Vectors must be the same lengths.
- V  h# O) N8 r& t3 T, N3 O6 I' C9 Y1 c- u, z) Y$ e! @  s  C
Error in ==> cor_self at 13
/ H. i! Q0 G! l2 o. v. y7 Rplot(k,r,'-*');
作者: zjqylcy    时间: 2012-7-13 16:31
k r 长度不一样   应该是r多了一位   可以进workspace里面看看
作者: 梓爱    时间: 2012-7-15 10:13
zjqylcy 发表于 2012-7-13 16:31
/ r/ y. U: T$ |0 J9 qk r 长度不一样   应该是r多了一位   可以进workspace里面看看
: A7 ?  V) F/ m& r
这个后来我又试了下,是矩阵的问题,x的输入应该是列向量的形式,不过k的范围是怎么确定的呀,我输入的是从0到12,可是出来的结果第十一和第十二的数显示为naf,帮忙解释下吧,谢谢了~~
作者: zjqylcy    时间: 2012-7-16 10:49
我看不太明白的是   你前面K是一个变 后面K又成了一个矩阵   ' D5 V: U8 `9 P  I7 Y4 `
  naf一般就是分母为0了




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5