数学建模社区-数学中国
标题:
求:用MATLAB求自相关系数
[打印本页]
作者:
梓爱
时间:
2012-7-13 11:35
标题:
求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢
4 j$ h# m7 r: v: A0 V
function r=cor_self(x,p,q)
9 E ~2 T G4 b2 V6 Q) y3 U7 j$ _" m
%连续计算一个序列(列向量)的自相关系数,其中滞后时间k由p变化到q
4 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; f
for k=p:q
( u' A6 ], Y0 Q; Q) `, u5 E
sum=0;
! R; U1 c6 |9 T
for i=1:n-k
7 ]; _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 ^
end
9 ]+ f6 |% P: L2 X( {1 u( q" }
运行显示
4 C a$ D9 ^" w& `4 G
Error using ==> plot
+ ^$ m1 c% H6 R- I! S! K% U
Vectors 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" K
plot(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