2

私はMatlabにかなり慣れていないので、大きなベクトル場の自己相関係数を計算しようとしています. 基本的に私は 15x13664 行列を持っています。ここで、列 1 の長さまでのタイム ラグの各 COLUMN の自己相関を個別に計算したいと考えています。2 つの for ループを使用して 1 列の自己相関を計算できますが、Matlab を次の列に移動するのに問題があります。各自己相関を行列の列として持つ行列に情報を保存したいと思います(つまり、私の出力は14x13664の行列になるはずです)。私のコードは次のとおりです。

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 が次の列に移動しない理由がわかりません。どんな助けでも大歓迎です。

4

0 に答える 0