1. matlab中已知协方差矩阵怎样算相关系数?
已知协方差矩阵,计算相关系数可以按图中的公式进行。
R就是相关系数矩阵,C为协方差矩阵。
>> a=rand(5,5)
a =
0.9501 0.7621 0.6154 0.4057 0.0579
0.2311 0.4565 0.7919 0.9355 0.3529
0.6068 0.0185 0.9218 0.9169 0.8132
0.4860 0.8214 0.7382 0.4103 0.0099
0.8913 0.4447 0.1763 0.8936 0.1389
>> C=cov(a)
C =
0.0878 0.0129 -0.0526 -0.0253 -0.0276
0.0129 0.1022 -0.0229 -0.0739 -0.0993
-0.0526 -0.0229 0.0819 -0.0037 0.0515
-0.0253 -0.0739 -0.0037 0.0774 0.0624
-0.0276 -0.0993 0.0515 0.0624 0.1079%%协方差矩阵
>> R=corrcoef(a)
R =
1.0000 0.1364 -0.6207 -0.3063 -0.2836
0.1364 1.0000 -0.2503 -0.8309 -0.9454
-0.6207 -0.2503 1.0000 -0.0460 0.5478
-0.3063 -0.8309 -0.0460 1.0000 0.6822
-0.2836 -0.9454 0.5478 0.6822 1.0000%%相关系数矩阵
可以看出相关系数矩阵是是对称阵。它的计算结果R(1,2)是第一列和第二列的相关系数;R(1,3)是第一列和第三列的相关系数;R(2,3)是第二列和第三列的相关系数;R(1,2)和R(2,1)都是第一列和第二列的相关系数所以是相等的。
2. matlab中已知协方差矩阵,怎样算相关系数?
计算方法如下:
假设协方差矩阵为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)的编辑模式,代表了当今国际科学计算软件的先进水平。
3. matlab中已知协方差矩阵怎样算相关系数?
已知协方差矩阵,计算相关系数可以按图中的公式进行。
R就是相关系数矩阵,C为协方差矩阵。
>> a=rand(5,5)
a =
0.9501 0.7621 0.6154 0.4057 0.0579
0.2311 0.4565 0.7919 0.9355 0.3529
0.6068 0.0185 0.9218 0.9169 0.8132
0.4860 0.8214 0.7382 0.4103 0.0099
0.8913 0.4447 0.1763 0.8936 0.1389
>> C=cov(a)
C =
0.0878 0.0129 -0.0526 -0.0253 -0.0276
0.0129 0.1022 -0.0229 -0.0739 -0.0993
-0.0526 -0.0229 0.0819 -0.0037 0.0515
-0.0253 -0.0739 -0.0037 0.0774 0.0624
-0.0276 -0.0993 0.0515 0.0624 0.1079%%协方差矩阵
>> R=corrcoef(a)
R =
1.0000 0.1364 -0.6207 -0.3063 -0.2836
0.1364 1.0000 -0.2503 -0.8309 -0.9454
-0.6207 -0.2503 1.0000 -0.0460 0.5478
-0.3063 -0.8309 -0.0460 1.0000 0.6822
-0.2836 -0.9454 0.5478 0.6822 1.0000%%相关系数矩阵
可以看出相关系数矩阵是是对称阵。它的计算结果R(1,2)是第一列和第二列的相关系数;R(1,3)是第一列和第三列的相关系数;R(2,3)是第二列和第三列的相关系数;R(1,2)和R(2,1)都是第一列和第二列的相关系数所以是相等的。
4. 在matlab里怎么产生零均值协方差是已知的高斯信号呢?
如何生成满足协方差矩阵Cx=[4 -1;-1 2]的二维高斯随机变量x的N个样本?
为了简单起见,假设X是零均值的.对于非零均值,设均值average=[a;b],只要外加一步x=x+average*ones(1,N)就OK了。
首先生成不相关的二维高斯随机变量z=randn(2,N);
这样生成的z,因为不相关,如果没有野值的话,其协方差Cz=[1 0;0,1];
如何从这样一个样本变换出满足所要求协方差矩阵的随机变量?
在零均值的条件下, Cz=E{z*z'},
我们假设 x=A*z,那么 Cx=E{x*x'}=E{(A*z)*(A*z)'}=A*E{z*z'}*A'=A*Cz*A'=A*A'
现在要解决的问题是,已知A*A'=Cx=[4 -1;-1 2],如何求A?显然这样的A有很多,我们为了方便计算,假设A为对称矩阵,即A=A',那么A的平方等于Cx,A等于Cx的平方根。
程序如下:
z=randn(2,N);
x=sqrtm(Cx)*z;
如果是非零均值,加上x=x+average*ones(1,N);
注意:
(1)程序中求平方根用的是sqrtm(Cx),而不是sqrt(Cx),前者是求满足A*A=Cx的A,后者是求满足A.*A=Cx的A。
(2)当N的值取太小时,Cz可能不等于[1 0;0 1].数据量越少,越不能体现统计特性。
5. 在matlab里怎么产生零均值协方差是已知的高斯信号呢?
如何生成满足协方差矩阵Cx=[4
-1;-1
2]的二维高斯随机变量x的N个样本?
为了简单起见,假设X是零均值的.对于非零均值,设均值average=[a;b],只要外加一步x=x+average*ones(1,N)就OK了。
首先生成不相关的二维高斯随机变量z=randn(2,N);
这样生成的z,因为不相关,如果没有野值的话,其协方差Cz=[1
0;0,1];
如何从这样一个样本变换出满足所要求协方差矩阵的随机变量?
在零均值的条件下,
Cz=E{z*z'},
我们假设
x=A*z,那么
Cx=E{x*x'}=E{(A*z)*(A*z)'}=A*E{z*z'}*A'=A*Cz*A'=A*A'
现在要解决的问题是,已知A*A'=Cx=[4
-1;-1
2],如何求A?显然这样的A有很多,我们为了方便计算,假设A为对称矩阵,即A=A',那么A的平方等于Cx,A等于Cx的平方根。
程序如下:
z=randn(2,N);
x=sqrtm(Cx)*z;
如果是非零均值,加上x=x+average*ones(1,N);
注意:
(1)程序中求平方根用的是sqrtm(Cx),而不是sqrt(Cx),前者是求满足A*A=Cx的A,后者是求满足A.*A=Cx的A。
(2)当N的值取太小时,Cz可能不等于[1
0;0
1].数据量越少,越不能体现统计特性。
6. matlab求两个总体的均值向量和协方差矩阵
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
来自网络
7. matlab求两个总体的均值向量和协方差矩阵
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
来自网络
8. matlab求两个总体的均值向量和协方差矩阵
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
来自网络