matlab高斯曲线,python绘制高斯曲线

本文实例为大家分享了python绘制高斯曲线的具体代码,供大家参考,具体内容如下

源码:

import numpy as np

import matplotlib.pyplot as plt

import math

import mpl_toolkits.mplot3d

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()

#import tensorflow as tf

from sklearn import datasets

sess = tf.InteractiveSession()

gamma = tf.constant(-1.0)

x, y = np.mgrid[-2:2:0.01, -2:2:0.01]

x_data = tf.placeholder(shape=[400, 400], dtype=tf.float32)

y_data = tf.placeholder(shape=[400, 400], dtype=tf.float32)

Kernel = tf.exp(tf.multiply(gamma, tf.add((x_data*x_data),(y_data*y_data))))

Kernel = sess.run(Kernel, feed_dict={x_data: x,y_data: y})

ax = plt.subplot(111, projection='3d')

ax.plot_surface(x, y, Kernel, rstride=1, cstride=1, cmap='rainbow', alpha=0.9)#绘面

ax.set_xlabel('x')

ax.set_ylabel('y')

ax.set_zlabel('Kernel')

plt.show()

效果图:

14a2b504fd7e1d1770f80cf5112ab025.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 MATLAB 代码,用于绘制高斯混合分布: ```matlab % 设置高斯混合模型参数 mu1 = -1; sigma1 = 1; mu2 = 1; sigma2 = 1; p1 = 0.5; p2 = 0.5; % 生成数据点 x1 = normrnd(mu1, sigma1, [1, 1000]); x2 = normrnd(mu2, sigma2, [1, 1000]); x = [x1, x2]; % 绘制数据点概率密度直方图 histogram(x, 'Normalization', 'pdf', 'BinWidth', 0.1, 'FaceAlpha', 0.6); % 计算高斯混合概率密度函数 gm_pdf = p1 * normpdf(x, mu1, sigma1) + p2 * normpdf(x, mu2, sigma2); % 绘制高斯混合概率密度函数曲线 x_range = -5:0.1:5; hold on; plot(x_range, gm_pdf(x_range), 'r-', 'LineWidth', 1.5); % 绘制高斯混合概率密度函数核密度估计曲线 kde = fitdist(x', 'Kernel'); plot(x_range, pdf(kde, x_range), 'g-', 'LineWidth', 1.5); % 显示图例和标题 legend('Data Point', 'GMM', 'KDE'); title('Gaussian Mixture Distribution'); ``` 这个代码与上面的 Python 代码相似,首先设置了两个高斯分布的均值和标准差,以及它们的权重。然后通过 `normrnd` 函数生成了 2000 个数据点,其中前 1000 个点来自第一个高斯分布,后 1000 个点来自第二个高斯分布。接着使用 `histogram` 函数绘制了这些数据点的概率密度直方图。 最后,计算了高斯混合模型的概率密度函数,并使用 `plot` 函数分别绘制了概率密度函数曲线和核密度估计曲线。最后,使用 `legend` 和 `title` 函数显示图例和标题。需要注意的是,在 MATLAB 中计算高斯混合模型的概率密度函数需要使用 `normpdf` 函数,而计算核密度估计曲线需要使用 `fitdist` 和 `pdf` 函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值