计算二维矩阵的相关系数

Posted on 2021-01-23 20:55  Smilesq  阅读(2372)  评论(0编辑  收藏  举报

很久没有用Matlab工具了,最近由于需要数据处理所以又重拾起

主要记录如何用Matlab计算矩阵的相关系数方法

这里介绍的是皮尔森(Pearson)相关系数,corr()默认为是Pearson

(协方差/二者的方差的乘积)方差是标准差的开方,都表示数据的离散程度(震荡程度)

矩阵形式:4096*3575

目标:得到该矩阵每一行与其余行数据之间的相关系数矩阵(4096*4096相关系数矩阵)

例如:A=[1 2 3

                12 14 15

                23 34 45]

计算A第一行与第二行,第三行,第二行与第一行,第三行,第三行与第一行,第二行的关于对角线对称的相关系数的矩阵

如下使用corrcoef方法计算矩阵中某两行之间的系数矩阵,0.9820是我们想要的系数

最开始知道用corrcoef()可以直接结算两个向量之间的系数(可以用help corrcoef进行查阅具体用法)

 

 以上是处理本数据的代码,一行大概需要处理1分钟,速度超级慢

以上方法自己编写的太笨了,计算完系数需要自己填入系数矩阵中,所以每次都要迭代速度慢且占内存

后来找到一个corr(),输入矩阵后就可以直接得到相关系数的矩阵了,很方便,先将原有数据转置,后用corr(转置矩阵),计算就可以得到相关系数矩阵

 

 

 

 真是太方便了!!!