在matlab中如何求两个列矩阵的协方差?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在matlab中如何求两个列矩阵的协方差?相关的知识,希望对你有一定的参考价值。
用cov函数可以求得两个列矩阵的协方差矩阵,这个矩阵的对角线就是相关系数,那么如何单独求出两个列矩阵的协方差呢??
matlab函数:mean>>x=[1,2,3]
>>mean(x)=2
如果x是一个矩阵,则其均值是一个向量组。mean(x,1)为列向量的均值,mean(x,2)为行向量的均值。
>>x=[1
2
3
4
5
6]
>>mean(x,1)=[2.5,
3.5,
4.5]
>>mean(x,2)=[2
5]
若要求整个矩阵的均值,则为mean(mean(x))。
>>mean(mean(x))=3.5
也可使用mean2函数:
>>mean2(x)=3.5
协方差矩阵
a=[61.45,55.9,61.95,59,58.14,53.61,55.48,54.21,61.52,54.92];
b=[40.36,39.8,49.2,48,51.5,49.39,51.13,58.06,61,62.35];
c=[8.61,8.91,10.43,13.32,13.48,15.75,18.14,19.95,21.95,23.53];
d=[14.31,14.72,15.28,15.91,14.67,15,15.86,15.16,13.72,12.94];
e=[7.67,7.75,8.15,9.24,10.68,10.58,10.31,10,8.91,8.51];
>>
q=[a',b',c',d',e'];
>>
w=cov(q)
w
=
10.3710
-4.7446
-6.6023
-0.1873
-1.8881
-4.7446
59.1503
38.7606
-3.0743
3.0982
-6.6023
38.7606
28.6966
-2.0199
2.4166
-0.1873
-3.0743
-2.0199
0.8474
0.3936
-1.8881
3.0982
2.4166
0.3936
1.3412
来自网络 参考技术A 函数 cov
格式 cov(X) %求向量X的协方差
cov(A) %求矩阵A的协方差矩阵,该协方差矩阵的对角线元素是A的各列的方差,即:var(A)=diag(cov(A))。
cov(X,Y) %X,Y为等长列向量,等同于cov([X Y])。 参考技术B cov(a,b);
matlab中已知协方差矩阵,怎样算相关系数?
参考技术A计算方法如下:
假设协方差矩阵为c
第i行与第j行的相关系数为:
r(i,j)=c(i,j)/sqrt(c(i,i)*c(j,j))
若要求整个矩阵可用循环实现
[m,n]=size(c);
for i=1:m
for j=1:n
r(i,j)=c(i,j)/sqrt(c(i,i)*c(j,j));
end
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
以上是关于在matlab中如何求两个列矩阵的协方差?的主要内容,如果未能解决你的问题,请参考以下文章