数学建模社区-数学中国
标题:
求:用MATLAB求自相关系数
[打印本页]
作者:
梓爱
时间:
2012-7-13 11:35
标题:
求:用MATLAB求自相关系数
下面这个程序为什么运行出错呢
1 |: e, f# l1 t
function r=cor_self(x,p,q)
- ^& Z$ E( P+ r9 @4 Y
%连续计算一个序列(列向量)的自相关系数,其中滞后时间k由p变化到q
; Z! G6 @; I; U) X o
clc;close all;
; j% K* G% d& S
n=size(x,1);
/ K7 E. Y. y( |, \5 y# ^( s! r' K
for k=p:q
6 c: e' p# t3 ?( {' c
sum=0;
$ Y0 n: i1 l8 h% D" R* D
for i=1:n-k
# }: Z* X! ?: W& d. u' p
sum=sum+(x(i)-mean(x(1:n-k)))*(x(i+k)-mean(x(1+k:n)));
1 H/ |3 A" m( Q+ @2 O6 r
end
/ X l. T, x* z. j. M0 l. |4 g
r(k+1)=sum/std(x(1:n-k))/std(x(1+k:n))/(n-k);
6 O3 n! V! r( _
end
+ a/ E- C; l* \) r+ N$ g' D6 \! B
k=[p:q];
H! I$ A3 `& A3 z3 S# G( Z }. I
plot(k,r,'-*');
6 y( f- _2 m7 d( Q3 v
refline(0,0);
' T7 D! t; H5 h$ `7 t
end
. Y R0 {. ?( G$ q' r% ^
运行显示
2 F) ?) [: r! V# u- Z3 w" y! @8 x
Error using ==> plot
+ Y2 [0 Y. y4 W1 c
Vectors must be the same lengths.
* g8 Z) F4 `. Z# P; T$ E) Y
/ h$ u7 m9 E3 G$ t7 [
Error in ==> cor_self at 13
- t6 P3 H) c& q" X
plot(k,r,'-*');
作者:
zjqylcy
时间:
2012-7-13 16:31
k r 长度不一样 应该是r多了一位 可以进workspace里面看看
作者:
梓爱
时间:
2012-7-15 10:13
zjqylcy 发表于 2012-7-13 16:31
+ Y D, b6 i" i3 X- t) ?
k r 长度不一样 应该是r多了一位 可以进workspace里面看看
1 \: D+ x0 O2 y* H, ^' `8 v; j
这个后来我又试了下,是矩阵的问题,x的输入应该是列向量的形式,不过k的范围是怎么确定的呀,我输入的是从0到12,可是出来的结果第十一和第十二的数显示为naf,帮忙解释下吧,谢谢了~~
作者:
zjqylcy
时间:
2012-7-16 10:49
我看不太明白的是 你前面K是一个变 后面K又成了一个矩阵
" ?& A/ m& n4 \; a
naf一般就是分母为0了
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5