数学建模社区-数学中国

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

作者: 梓爱    时间: 2012-7-13 11:35
标题: 求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢
% G5 S! ~3 a$ J- N, ^8 b0 Rfunction r=cor_self(x,p,q)
/ U) a# f4 u8 L! {: X  W- ]%连续计算一个序列(列向量)的自相关系数,其中滞后时间k由p变化到q3 E/ D- ^  V$ n- H( |3 Y6 @- A
clc;close all;
  Q/ d$ x% ~0 ?$ [9 x5 M8 n* h0 Dn=size(x,1);1 |' ?' g) `! {4 G4 |( ?
for k=p:q, ^! ^& v# l# a7 S+ y' J
    sum=0;( Z8 `. t# ?& u8 c  F# H8 N1 c& \: G
    for i=1:n-k
3 p/ D$ m$ K* P+ R9 W        sum=sum+(x(i)-mean(x(1:n-k)))*(x(i+k)-mean(x(1+k:n)));0 u. u! T) B5 [9 |# ?
    end
$ e! j' ?/ N8 O8 M' E/ D9 \4 O" w0 j    r(k+1)=sum/std(x(1:n-k))/std(x(1+k:n))/(n-k);# ?' d7 n8 o1 h% _5 A) j( r, L4 l
end6 e& [. _/ r2 Q5 Y$ m
k=[p:q];
9 N$ i: Q- H! }" S% Jplot(k,r,'-*');
4 J6 O9 m7 M2 t7 qrefline(0,0);
. }( D1 N2 `% G6 l, {& Bend9 w2 g7 a. X( l" ?; r1 t
运行显示2 ?( [- Y2 l- U
Error using ==> plot
$ p; i- b' Q% k* y4 y/ o) OVectors must be the same lengths.
& t/ L( O5 o( U8 m0 z9 O+ x, O0 C- o; |$ K
Error in ==> cor_self at 134 L8 y0 ~: D6 u# T7 e1 w4 b
plot(k,r,'-*');
作者: zjqylcy    时间: 2012-7-13 16:31
k r 长度不一样   应该是r多了一位   可以进workspace里面看看
作者: 梓爱    时间: 2012-7-15 10:13
zjqylcy 发表于 2012-7-13 16:31 , d' V' Z+ l% ~5 ]: y
k r 长度不一样   应该是r多了一位   可以进workspace里面看看

; s- i# M8 N: w/ n/ l$ D- |2 O这个后来我又试了下,是矩阵的问题,x的输入应该是列向量的形式,不过k的范围是怎么确定的呀,我输入的是从0到12,可是出来的结果第十一和第十二的数显示为naf,帮忙解释下吧,谢谢了~~
作者: zjqylcy    时间: 2012-7-16 10:49
我看不太明白的是   你前面K是一个变 后面K又成了一个矩阵   
3 U  E3 j: _/ W+ }  naf一般就是分母为0了




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