在MATLAB中求多元正态分布的协方差

在MATLAB中求多元正态分布的协方差,matlab,random,distribution,Matlab,Random,Distribution,我试图在Matlab中创建一个对称的随机数的二元正态分布。我知道高斯分布的标准偏差(例如15),并且在两个方向上都是相同的。如何使用此标准偏差信息以Matlab将接受的形式获取mvnrnd命令的协方差?谢谢,如果有任何建议,我将不胜感激 如果随机变量是独立的,协方差矩阵的非对角元素为零。因此,矩阵将是diag(std1,std2),其中std1和std2是两个变量的标准偏差。在您的示例中,您将使用diag(15,15) 如果随机变量不是独立的,您需要指定协方差矩阵的所有四个元素。首先,您需要知道

我试图在Matlab中创建一个对称的随机数的二元正态分布。我知道高斯分布的标准偏差(例如15),并且在两个方向上都是相同的。如何使用此标准偏差信息以Matlab将接受的形式获取mvnrnd命令的协方差?谢谢,如果有任何建议,我将不胜感激

如果随机变量是独立的,协方差矩阵的非对角元素为零。因此,矩阵将是
diag(std1,std2)
,其中
std1
std2
是两个变量的标准偏差。在您的示例中,您将使用
diag(15,15)


如果随机变量不是独立的,您需要指定协方差矩阵的所有四个元素。

首先,您需要知道两个正态变量之间的相关性。就像@Luis说的,对角线是15,但是对于协方差,你需要知道两者之间的相关性

它们由以下等式关联:

cov(x,y) = correlation(x,y)*std(x)*std(y)
但是如果你不知道相关性,那么你可以计算样本协方差

样本协方差的Forumla:

要在Matlab中计算:

cov = (1/n)*(x-mean(x))*(y-mean(y))'
SIGMA = cov([x y]);

参考:

您可以在Matlab中使用cov命令:

cov = (1/n)*(x-mean(x))*(y-mean(y))'
SIGMA = cov([x y]);
HTH

不知道你说的“对称”是什么意思。你是说旋转对称性,即球度吗?