如何在MATLAB中获得二维矩阵列表的所有成对相关性



EDIT:在接受答案后对问题进行了编辑,以使其(希望(更清晰。

给定三维矩阵M(m, n, k),如何计算(i, j)条目为corr(M(m, n, i), M(m, n, j))的二维相关矩阵M(k, k)

Layman条款

例如,我有一个3d矩阵M(20, 20, 100),我需要一个2d矩阵M(100, 100),它是M(20, 20, i)的每个成对组合的相关矩阵,其中i = 100。由于M(100, 100)是一个相关矩阵,每个单元都是一个单独的相关系数(r(,并且矩阵是对称的:

a     b     c    ...
a    1     r_ab  r_ac 
b    r_ba  1     r_bc
c    r_ca  r_cb  1
...

Matlab MWE

我尝试了循环的组合,corrcoefcorr2,但没有成功。

% 3d matrix
m = rand(20, 20, 100);
% wrong output
r = corrcoef(m(:, :));

您只需要重塑m,使每个矩阵线性化为一列。然后corrcoef给出了想要的结果:

r = corrcoef(reshape(m, [], size(m,3)));

相关内容

  • 没有找到相关文章

最新更新