数学建模社区-数学中国

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

作者: 梓爱    时间: 2012-7-13 11:35
标题: 求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢
9 F3 A8 s- g* i# L5 k0 H: `2 Jfunction r=cor_self(x,p,q)
' d: F( @+ e6 f%连续计算一个序列(列向量)的自相关系数,其中滞后时间k由p变化到q' i. h% U( u/ t( W" d  i  c( Z% z0 b
clc;close all;6 S3 [+ {# \- m2 T; V4 V" Z  E
n=size(x,1);
6 h# l8 [& I' V4 vfor k=p:q
: ^5 \0 M( z  n0 K1 v    sum=0;
4 B7 ]7 [; }' o0 R3 x- C    for i=1:n-k
$ t; G, B3 J; z9 ^4 m4 w6 L: Y        sum=sum+(x(i)-mean(x(1:n-k)))*(x(i+k)-mean(x(1+k:n)));
& O; p- e; _1 l1 E    end
* X- |$ c% s$ u2 z/ |    r(k+1)=sum/std(x(1:n-k))/std(x(1+k:n))/(n-k);
  c) J- p) p4 E, e, I6 }& nend
3 q2 v  e# i2 |  W9 ^' S+ Rk=[p:q];
" R  ~0 j4 m' R/ Aplot(k,r,'-*');
' s5 p- q/ h, y6 h0 {3 r! I- Y5 E# zrefline(0,0);# @) d! s* u; d& m1 F, Q
end* A: u5 j" D5 ]" ]6 d3 E  `5 c
运行显示2 z( r( Z) o; l8 i+ |3 J4 K2 Y5 `( V
Error using ==> plot
5 A/ Q( A: ^) d" z/ pVectors must be the same lengths.5 k% u8 @4 U  n2 O+ t

9 W0 K9 ?" M5 v) |+ X. ^5 MError in ==> cor_self at 13
. ?$ e7 j7 Y* V8 v0 eplot(k,r,'-*');
作者: zjqylcy    时间: 2012-7-13 16:31
k r 长度不一样   应该是r多了一位   可以进workspace里面看看
作者: 梓爱    时间: 2012-7-15 10:13
zjqylcy 发表于 2012-7-13 16:31 $ N6 J& z/ ^/ p/ Y9 K2 }
k r 长度不一样   应该是r多了一位   可以进workspace里面看看

; ]! N5 h- y2 i" A2 A: y8 _这个后来我又试了下,是矩阵的问题,x的输入应该是列向量的形式,不过k的范围是怎么确定的呀,我输入的是从0到12,可是出来的结果第十一和第十二的数显示为naf,帮忙解释下吧,谢谢了~~
作者: zjqylcy    时间: 2012-7-16 10:49
我看不太明白的是   你前面K是一个变 后面K又成了一个矩阵   
9 o/ ]1 P) C, I: n  N# ~8 n- w  naf一般就是分母为0了




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