Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

random

高斯混合分布的随机变量

说明

示例

Y = random(gm) 从 m 维高斯混合分布 gm 中生成一个 1×m 随机变量。

示例

Y = random(gm,n) 返回 n 个随机变量。Y 的每行都是一个从 m 维高斯混合分布 gm 中生成的随机变量。

示例

[Y,compIdx] = random(___) 还为上述语法中的任一输入参数返回一个 n×1 索引向量 compIdxcompIdx(i) 表示用于生成第 i 个随机变量 Y(i,:) 的混合成分。

示例

全部折叠

创建一个 gmdistribution 对象并生成随机变量。

定义一个二成分二元高斯混合分布的分布参数(均值和协方差)。

mu = [1 2;-3 -5];
sigma = [1 1]; % shared diagonal covariance matrix

使用 gmdistribution 函数创建一个 gmdistribution 对象。默认情况下,该函数会创建一个等比例混合。

gm = gmdistribution(mu,sigma)
gm = 

Gaussian mixture distribution with 2 components in 2 dimensions
Component 1:
Mixing proportion: 0.500000
Mean:     1     2

Component 2:
Mixing proportion: 0.500000
Mean:    -3    -5

生成 1000 个随机变量。

rng('default'); % For reproducibility
[Y,compIdx] = random(gm,1000);

compIdx(i) 表示用于生成第 i 个随机变量 Y(i,:) 的混合成分。计算由 Component 1 生成的随机变量的数目。

numIdx1 = sum(compIdx == 1)
numIdx1 = 512

random 使用 Component 1 生成大约一半的随机变量,因为 gm 具有相等的混合比例。

使用 scatter 绘制生成的随机变量。

scatter(Y(:,1),Y(:,2),10,'.') % Scatter plot with points of size 10

Figure contains an axes object. The axes object contains an object of type scatter.

重置随机数生成器以生成相同的随机变量。

定义两个二元高斯混合成分的分布参数(均值、协方差和混合比例)。

p = [0.4 0.6];               % Mixing proportions     
mu = [1 2;-3 -5];            % Means
sigma = cat(3,[2 .5],[1 1])  % Covariances 1-by-2-by-2 array
sigma = 
sigma(:,:,1) =

    2.0000    0.5000


sigma(:,:,2) =

     1     1

cat 函数沿第三个数组维度串联协方差。定义的协方差矩阵是对角矩阵。sigma(1,:,i) 包含成分 i 的协方差矩阵的对角线元素。

使用 gmdistribution 函数创建一个 gmdistribution 对象。

gm = gmdistribution(mu,sigma);

保存随机数生成器的当前状态,然后使用 gm 生成一个随机变量。

s = rng;
r = random(gm)
r = 1×2

   -1.1661   -7.2588

将随机数生成器的状态恢复为 s,然后使用 gm 生成一个随机变量。值与之前相同。

rng(s);
r1 = random(gm)
r1 = 1×2

   -1.1661   -7.2588

输入参数

全部折叠

高斯混合分布,也称为高斯混合模型 (GMM),指定为 gmdistribution 对象。

您可以使用 gmdistributionfitgmdist 创建一个 gmdistribution 对象。通过指定分布参数,使用 gmdistribution 函数创建一个 gmdistribution 对象。在给定固定成分数量的情况下,使用 fitgmdist 函数对数据进行 gmdistribution 模型拟合。

要生成的随机变量的数目,指定为正整数。

数据类型: single | double

输出参数

全部折叠

随机变量,以 1×m 数值向量或 n×m 数值矩阵形式返回。Y 的每行都是一个从 m 维高斯混合分布 gm 中生成的随机变量。

成分索引,以正整数或 n×1 索引向量形式返回,其中 compIdx(i) 表示用于生成第 i 个随机变量 Y(i,:) 的混合成分。

版本历史记录

在 R2007b 中推出