数学建模社区-数学中国
标题:
求:用MATLAB求自相关系数
[打印本页]
作者:
梓爱
时间:
2012-7-13 11:35
标题:
求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢
% G5 S! ~3 a$ J- N, ^8 b0 R
function r=cor_self(x,p,q)
/ U) a# f4 u8 L! {: X W- ]
%连续计算一个序列(列向量)的自相关系数,其中滞后时间k由p变化到q
3 E/ D- ^ V$ n- H( |3 Y6 @- A
clc;close all;
Q/ d$ x% ~0 ?$ [9 x5 M8 n* h0 D
n=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
end
6 e& [. _/ r2 Q5 Y$ m
k=[p:q];
9 N$ i: Q- H! }" S% J
plot(k,r,'-*');
4 J6 O9 m7 M2 t7 q
refline(0,0);
. }( D1 N2 `% G6 l, {& B
end
9 w2 g7 a. X( l" ?; r1 t
运行显示
2 ?( [- Y2 l- U
Error using ==> plot
$ p; i- b' Q% k* y4 y/ o) O
Vectors must be the same lengths.
& t/ L( O5 o( U8 m0 z9 O
+ x, O0 C- o; |$ K
Error in ==> cor_self at 13
4 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