很久没有用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(转置矩阵),计算就可以得到相关系数矩阵
真是太方便了!!!