请教下matlab中怎样由协方差矩阵求出原矩阵,有没有人知道这个程序怎么编,或者用哪个函数解决,谢谢了 R=X*X'X=sqrt(R(1:size(R,2)+1:end))
matlab怎么求两个矩阵协方差矩阵 利用cov函数。cov(A,B)
matlab 中的cov等的统计函数的用法;假设X={xij}是一个p*n的矩阵,即有p个变元,n次观察,如何求协方差矩 >;>;a=[1 2 3;2 5 6]a=1 2 32 5 6b=mean(a)%mean是按列求平均值,从b中的值可以看出b=1.5000 3.5000 4.5000c=mean(a')%所以要按行求平均值,直接转置求取,最后对c再求转置即可得到p维列向量c=2.0000 4.3333M=rand(4,3)M=0.9501 0.8913 0.82140.2311 0.7621 0.44470.6068 0.4565 0.61540.4860 0.0185 0.7919m=cov(M)m=0.0892 0.0330 0.04050.0330 0.1505-0.01860.0405-0.0186 0.0305%可以看出最后得到的协方差是3*3,由此知cov也是按列计算的,m对角线的元素是每列的方差,其余元素是列与列之间的协方差n=cov(M')n=0.0042-0.0061-0.0006-0.01100.0061 0.0714-0.0214-0.07140.0006-0.0214 0.0080 0.03260.0110-0.0714 0.0326 0.1517%转置后计算协方差,n为4*4,那么对角线元素就是行的方差,其余元素就是行与行之间的协方差。关于cov计算的结果和手算的结果不同,这里的原因是:matlab在计算相关矩阵时,把每一列的数作为一个随机变量的样本,每一行作为一个这几个随机变量的联合样本,即第i个随机变量取第k行的样本值时,第j个随机变量也取第k行的样本值。利用这个性质,我们e799bee5baa6e997aee7ad94e78988e69d8331333264626631就可以用。