MATLAB根据多组数据拟合出其高斯混合分布
时间: 2023-09-13 22:02:52 浏览: 179
高斯混合模型matlab
5星 · 资源好评率100%
以下是用MATLAB拟合高斯混合分布的示例代码:
```matlab
% 生成多组数据
x1 = randn(500,1);
x2 = randn(400,1)+3;
x3 = randn(300,1)-2;
x4 = randn(200,1)+5;
x = [x1;x2;x3;x4];
% 用fitgmdist函数拟合高斯混合分布
gm = fitgmdist(x,4); % 4表示用4个高斯分布拟合数据
% 绘制拟合结果
xrange = -10:0.1:15;
y = pdf(gm,xrange');
figure;
histogram(x,'Normalization','pdf');
hold on;
plot(xrange,y,'LineWidth',2);
legend('数据分布','拟合高斯混合分布');
```
上述代码首先生成了四组不同均值和方差的正态分布数据,然后用fitgmdist函数拟合了这些数据的高斯混合分布,最后绘制了数据分布和拟合结果的直方图和曲线。
阅读全文