数学建模社区-数学中国

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

作者: 梓爱    时间: 2012-7-13 11:35
标题: 求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢
4 j$ h# m7 r: v: A0 Vfunction r=cor_self(x,p,q)9 E  ~2 T  G4 b2 V6 Q) y3 U7 j$ _" m
%连续计算一个序列(列向量)的自相关系数,其中滞后时间k由p变化到q4 v  ~( H0 f# ?2 H" z1 f% H! S' F
clc;close all;5 g; O) k/ o' b+ @. \1 h
n=size(x,1);
+ E6 L- i7 y. t3 G; ffor k=p:q( u' A6 ], Y0 Q; Q) `, u5 E
    sum=0;
! R; U1 c6 |9 T    for i=1:n-k7 ]; _1 J4 Y2 e  v4 c
        sum=sum+(x(i)-mean(x(1:n-k)))*(x(i+k)-mean(x(1+k:n)));
9 ?( [2 Y: e, O' k$ D0 `) N0 `    end
4 a6 ~" @! L' P$ O& x    r(k+1)=sum/std(x(1:n-k))/std(x(1+k:n))/(n-k);$ T2 X6 x, C- c& z  N0 J- G
end$ Z  d1 L/ }1 b# \4 {( Q) B
k=[p:q];! K* J  [& c8 G% D) a6 M/ z: H, O. u
plot(k,r,'-*');/ C1 G- W7 u' j9 Y. O: A, Y) |! F
refline(0,0);
  G9 O5 g" w% l2 ^end9 ]+ f6 |% P: L2 X( {1 u( q" }
运行显示
4 C  a$ D9 ^" w& `4 GError using ==> plot
+ ^$ m1 c% H6 R- I! S! K% UVectors must be the same lengths.+ ?1 ~7 B3 g: G) k& o( w
2 l$ I4 l* k" z5 G; v6 ^4 ?
Error in ==> cor_self at 13
8 N/ d3 L% z8 \, Q0 w9 U" Kplot(k,r,'-*');
作者: zjqylcy    时间: 2012-7-13 16:31
k r 长度不一样   应该是r多了一位   可以进workspace里面看看
作者: 梓爱    时间: 2012-7-15 10:13
zjqylcy 发表于 2012-7-13 16:31 4 x/ J! x( W) m5 B( ~& r; H
k r 长度不一样   应该是r多了一位   可以进workspace里面看看

3 s+ `1 e$ M. f* Y这个后来我又试了下,是矩阵的问题,x的输入应该是列向量的形式,不过k的范围是怎么确定的呀,我输入的是从0到12,可是出来的结果第十一和第十二的数显示为naf,帮忙解释下吧,谢谢了~~
作者: zjqylcy    时间: 2012-7-16 10:49
我看不太明白的是   你前面K是一个变 后面K又成了一个矩阵   & o. _4 b6 B+ D2 v$ Z9 G5 b+ ^: Y. z
  naf一般就是分母为0了




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