数学建模社区-数学中国
标题:
求:用MATLAB求自相关系数
[打印本页]
作者:
梓爱
时间:
2012-7-13 11:35
标题:
求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢
9 F3 A8 s- g* i# L5 k0 H: `2 J
function 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 v
for 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 }& n
end
3 q2 v e# i2 | W9 ^' S+ R
k=[p:q];
" R ~0 j4 m' R/ A
plot(k,r,'-*');
' s5 p- q/ h, y6 h0 {3 r! I- Y5 E# z
refline(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/ p
Vectors must be the same lengths.
5 k% u8 @4 U n2 O+ t
9 W0 K9 ?" M5 v) |+ X. ^5 M
Error in ==> cor_self at 13
. ?$ e7 j7 Y* V8 v0 e
plot(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