0

次のコードがあります。

for k = 1:256
            for t = 1:10000
                % R matrix
                buffer = corrcoef(matrixA(:,k),matrixB(:,t));
                correlation_matrix(k,t)  = buffer (2,1);
            end
        end

2 つの行列の列のピアソン相関を計算します。これは私にとってはうまく機能し、結果は正しいです。ただし、プロセスは非常に遅いようです。ここで計算を高速化する方法を知っている人はいますか?

4

2 に答える 2

3

corr統計ツールボックスから使用して、ループを完全に削除できます

>> matrixA = randn(100, 256);
>> matrixB = randn(100, 10000);
>> size(corr(matrixA, matrixB))
ans =

   256   10000
于 2015-06-10T13:05:05.387 に答える
1

行列を連結し、1 回の操作ですべての相関を計算してから、関連するものを抽出するだけです。

>> matrixA = rand(100,256);
>> matrixB = rand(100,10000);
>> matrixC = [matrixA,matrixB];
>> c = corrcoef(matrixC);
>> correlation_matrix = c(1:256, 257:10256)

かなり速くなるはずです。

于 2015-06-10T12:33:56.390 に答える