Dna*_*iel 3 matlab matrix correlation
我有一个尺寸为37,000,000乘22的X矩阵,我想计算X的相关矩阵.
也就是说,
X_corr = corr(X,'type','Spearman');
Run Code Online (Sandbox Code Playgroud)
我希望X_corr的大小为22乘22.
但它需要永远,无论如何,为这样的长矩阵更快地计算相关矩阵?
谢谢!
受@ Bitwise解决方案的启发,我研究了实现corr.(你可以通过简单的输入来实现edit corr.它有一个变量对的循环,因为它想要处理NaN.如果你的数据中没有NaN,你可以简单地计算Spearman的相关性:
X = rand(3e6, 22);
R = tiedrank(X); % Elapsed time is 8.956700 seconds.
C = corrcoef(X); % Elapsed time is 0.579448 seconds.
Run Code Online (Sandbox Code Playgroud)
这应该是相同的
C2 = corr(X, 'type', 'Spearman'); Elapsed time is 9.501480 seconds.
Run Code Online (Sandbox Code Playgroud)
但它的速度大致相同.