数学建模社区-数学中国
标题:
求:用MATLAB求自相关系数
[打印本页]
作者:
梓爱
时间:
2012-7-13 11:35
标题:
求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢
) C5 ]% E' Y5 h( S. C
function r=cor_self(x,p,q)
# f. a" n2 G0 V3 u
%连续计算一个序列(列向量)的自相关系数,其中滞后时间k由p变化到q
5 k# i! ^! s* T4 c0 |5 M) K# Y
clc;close all;
5 _ S4 q ~& N0 o( t
n=size(x,1);
/ j, I5 L; ^ X: C$ Y8 ^3 u& `- b" J
for k=p:q
* k1 q7 T- C: w; K4 B+ l# U
sum=0;
; @+ R# V4 E; k. N! R4 H# S
for i=1:n-k
9 h$ J; { e5 c6 a& ]1 Y, B+ ~. @
sum=sum+(x(i)-mean(x(1:n-k)))*(x(i+k)-mean(x(1+k:n)));
- c. }1 O: f& j7 f
end
* j6 J4 m1 a3 q
r(k+1)=sum/std(x(1:n-k))/std(x(1+k:n))/(n-k);
7 `. \- }( `2 z9 r# ?5 |: \
end
3 D9 O" S- ^! O. ^& ~* Z( z
k=[p:q];
' I$ q8 C1 \( s4 r
plot(k,r,'-*');
% Z& S! S' V! |5 ] S. S3 U
refline(0,0);
/ W# ?& G" r, v) p4 M
end
- } h/ v( M2 x- A1 o
运行显示
3 ^2 s, u/ j4 q6 _7 y$ Q
Error using ==> plot
1 v4 \2 K' {' J( V; b
Vectors must be the same lengths.
2 }0 W" q& E& i
) R1 ^5 O1 ]& U; g% y5 W( l
Error in ==> cor_self at 13
; q' m1 s/ u1 ]) G3 J
plot(k,r,'-*');
作者:
zjqylcy
时间:
2012-7-13 16:31
k r 长度不一样 应该是r多了一位 可以进workspace里面看看
作者:
梓爱
时间:
2012-7-15 10:13
zjqylcy 发表于 2012-7-13 16:31
1 h) T J+ A4 a2 f3 u
k r 长度不一样 应该是r多了一位 可以进workspace里面看看
3 p" H+ P. y4 f$ O6 u1 o
这个后来我又试了下,是矩阵的问题,x的输入应该是列向量的形式,不过k的范围是怎么确定的呀,我输入的是从0到12,可是出来的结果第十一和第十二的数显示为naf,帮忙解释下吧,谢谢了~~
作者:
zjqylcy
时间:
2012-7-16 10:49
我看不太明白的是 你前面K是一个变 后面K又成了一个矩阵
/ K- V& a5 v7 b6 b$ Q, b
naf一般就是分母为0了
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5