matlab GMM的多元分布

时间:2015-01-07 13:02:54

标签: matlab distribution

我是Matlab的新手,对于一个愚蠢的问题感到抱歉。

我想创建一个由GMM生成的二维向量序列,由三个多元正态分布组成。

所以,让我们开始

 mu = [[0 1]; [0 2]; [0 3]]
 cov = cat(4, 0, 0.5)
 p = [0.4 0.4 0.2]
 obj = gmdistribution(mu, cov, p)

问题是这一系列命令不起作用。

另外,我希望这三个分布有一个小的重叠。我不知道如何评估mu和cov,以便它们会有一个小的重叠。

1 个答案:

答案 0 :(得分:1)

首先,cov是协方差函数的名称,因此您最好调用您的变量,例如: sigma。其次,您将cov变量创建为4-D数组,其值0位于cov(1,1,1,1)0.5位于cov(1,1,1,2)

根据协方差矩阵的外观,变量sigma看起来可能不同。设d为维数(示例中为2),k为分布数(示例中为3)。

一般情况: 每个高斯分布具有任意协方差矩阵。 sigma的大小为d x d x n,即2x2x3,其中sigma(:,:,k)k协方差矩阵。注意,协方差矩阵当然必须是对称的并且是半正的。你这样做,例如由

sigma(:,:,1) = [1.0, 0.5 ; 0.5, 2.0];
sigma(:,:,2) = [0.8, 0.1 ; 0.1, 0.2];
sigma(:,:,3) = [1.2, 0.4 ; 0.4, 0.3];

对角线协方差矩阵如果所有协方差矩阵都是对角线的,则可以将sigma指定为1 x d x k(1x2x3)矩阵,其中sigma(1,:,k)k协方差矩阵的对角元素。 E.g。

sigma(1,:,1) = [1.0, 2.0];
sigma(1,:,2) = [0.8, 0.2];
sigma(1,:,3) = [1.2, 0.3]; 

相同的协方差矩阵如果所有k协方差矩阵都相同,那么只要指定一次就足够了

sigma = [1.0, 0.5 ; 0.5, 2.0];

相同的对角线协方差矩阵如果所有k协方差矩阵都是相同的对角矩阵,sigma是包含对角元素的向量

sigma = [1.0, 2.0];