画高斯混合三维图 matlab 代码
时间: 2023-08-14 19:06:33 浏览: 96
以下是使用MATLAB绘制高斯混合三维图的示例代码:
```matlab
% 生成高斯混合数据
mu1 = [1 2 3];
sigma1 = [2 0 0; 0 1 0; 0 0 0.5];
mu2 = [4 5 6];
sigma2 = [1 0 0; 0 1 0; 0 0 2];
X1 = mvnrnd(mu1, sigma1, 1000);
X2 = mvnrnd(mu2, sigma2, 1000);
% 使用散点图绘制高斯混合数据
figure;
scatter3(X1(:,1), X1(:,2), X1(:,3), 'r.');
hold on;
scatter3(X2(:,1), X2(:,2), X2(:,3), 'b.');
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Gaussian Mixture');
% 绘制高斯混合等值线
[x, y, z] = meshgrid(-5:0.1:10, -5:0.1:10, -5:0.1:10);
F1 = mvnpdf([x(:) y(:) z(:)], mu1, sigma1);
F1 = reshape(F1, size(x));
F2 = mvnpdf([x(:) y(:) z(:)], mu2, sigma2);
F2 = reshape(F2, size(x));
F = F1 + F2;
figure;
isosurface(x, y, z, F, max(F(:))*0.1);
axis([-5 10 -5 10 -5 10]);
grid on;
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Gaussian Mixture Contours');
```
运行此代码将生成两个图形,一个是高斯混合散点图,另一个是高斯混合等值线图。
阅读全文