我对Matlab很新,我正在尝试计算大矢量场的自相关系数。基本上我有一个15x13664矩阵,在那里我想为每个COLUMN分别计算时间滞后直到列-1长度的自相关。我能够使用2个for循环计算1列的自相关,但是在获取Matlab然后移动到下一列时遇到了问题。我想将信息存储在一个矩阵中,该矩阵将每个自相关作为矩阵中的一列(即我的输出应该是14x13664 matirx)。我的代码如下:
b=1;%Start with column 1
for b=1:3,%Compute autocorrelation for first 3 columns
N=15;%Total number of points in each column
i=1;%set up variable for loop
j=1;
k=1;
m=0;%time lag variable
for index=1:15 % run autocorrelation 15 times
L=15-m;%Stop multiplying u velocity once end is reached
for index2=1:L,
multiply(i,b)=Utest2(i,b).*Utest2(j+m,b);%Multiply fluctuating velocity by itself plus time lag
i=i+1;
j=j+1;
end
Average(k,b)=sum(multiply(:,b)/N;%Find the average using number of points in multiply
correlation(k,b)=Average(:,b)./(stdU.^2);%Find correlation
m=m+1;%increase time lag
index2=1;%Reset loop
i=1;
j=1;
k=k+1;
N=N-1;%Reduce number of point in multiply for each iteration
end
b=b+1;
end
我收到错误: 订阅的分配维度不匹配。
我不明白为什么Matlab不会转到下一栏。任何帮助表示赞赏。