Python:创建一个满足高斯分布的立方体

news2024/11/15 8:34:54

算法说明:
(1)首先定义一个中心点坐标 center标准差 sigma峰值 amplitude
(2)然后通过计算每个点到中心点的欧氏距离,并将欧氏距离应用于高斯分布的公式 amplitude * exp(-distances**2 / (2 * sigma**2)),得到立方体的值 cube。

在这里插入图片描述

(说明1)高斯分布是一个连续的概率分布,具有峰值中心和标准差控制的形状。
(说明2)在这里,立方体的数值表示每个点在高斯分布上的概率密度,而不是完全符合连续高斯分布。
(说明3)由于离散化的限制,立方体的表现是一个近似的离散高斯分布。
(说明4)所以虽然不是完全连续的高斯分布,但在给定的离散空间中,它可以近似地表示高斯分布的特性,如中心峰值和逐渐减小的分布。

import matplotlib.pyplot as plt
import numpy as np
import torch


def generate_gaussian_cube(size, center, sigma, amplitude):
    # 创建网格点坐标
    indices = np.indices(size)
    coordinates = torch.tensor(indices, dtype=torch.float32)
    center = center.view(3, 1, 1, 1)  # 扩展 center 的维度
    # 计算每个点到中心点的欧氏距离
    distances = torch.sqrt(torch.sum((coordinates - center)**2, dim=0))
    # 根据高斯分布计算立方体的值
    cube = amplitude * torch.exp(-distances**2 / (2 * sigma**2))
    return cube


# (1)创建高斯分布的立方体
size_l = 6
center_l = 3
size = (size_l, size_l, size_l)                             # 立方体尺寸
center = torch.tensor([center_l, center_l, center_l])       # 中心点坐标
sigma = 1.0             # 标准差
amplitude = 255.0       # 峰值
cube = generate_gaussian_cube(size, center, sigma, amplitude)

# (2)打印参数
average_gray_value = torch.mean(cube)
print(cube.min(), cube.max())
print("Average Gray Value:", average_gray_value.item())

# (3)创建3D坐标轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# (4)绘制立方体
ax.voxels(cube.numpy(), facecolors='b', edgecolor='k', alpha=0.2)

# (5)绘制3D散点图
# 获取非零坐标和对应的值
indices = torch.nonzero(cube)
x_vals = indices[:, 0].numpy()
y_vals = indices[:, 1].numpy()
z_vals = indices[:, 2].numpy()
cube_vals = cube[indices[:, 0], indices[:, 1], indices[:, 2]].numpy()
ax.scatter(x_vals, y_vals, z_vals, c=cube_vals, cmap='jet')

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/738815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tcp转发服务桥(windows)

目的 目的是为了在网关上转发udp数据和tcp数据。对于网络里面隔离的内网来说,有一台可以上网的服务器,那么通过两块网卡就可以转发出去,在服务器上进行数据的转发,有tcp和udp两种,udp已经写过了,这次使用了…

MySQL 导出库和表信息导出成Excel

最近在写文档需要将数据库的表和对应的表信息做成EXCEL。 我不能一个一个表一个一个字段的敲下去吧!!! 那有没有一个SQL搞定呢? 这个可以有有! 数据库里有那些表(包含表名和表介绍) SELECT…

路径规划算法:基于野马优化的路径规划算法- 附代码

路径规划算法:基于野马优化的路径规划算法- 附代码 文章目录 路径规划算法:基于野马优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法野马…

关于CEPH的简单畅谈

CEPH是什么 CEPH是一个先进的分布式存储系统,它具有高度可靠性、可扩展性和性能。CEPH旨在解决传统存储系统中存在的诸多挑战,如单点故障、难以扩展、数据丢失风险等。 CEPH的设计理念是将数据分布到一个由多个节点组成的集群中,并利用冗余…

ERROR: ORA-12560: TNS: 协议适配器错误

之前在Windows安装了Oracle,遇到了ORA-12560 TNS: protocol adapter error的错误。这个问题的原因很简单,就是没有配Oracle的环境变量。由于是去年遇到的问题,我现在已经忘了具体配置什么变量,但可以肯定的是这个问题就是环境变量…

24 | MySQL是怎么保证主备一致的?

以下内容出自《MySQL 实战 45 讲》 https://time.geekbang.org/column/article/76446 24 | MySQL是怎么保证主备一致的? MySQL 主备的基本原理 如图所示就是基本的主备切换流程。(M-S结构) 节点 A 到 B 这条线的内部流程是什么样的 &#x…

DEVICENET转ETHERNET/IP网关devicenet怎么读

远创智控YC-EIP-DNT,你听说过吗?这是一款自主研发的ETHERNET/IP从站功能的通讯网关,它能够连接DEVICENET总线和ETHERNET/IP网络,从而解决生产管理系统中协议不同造成的数据交换互通问题。 这款产品在工业自动化领域可谓是一大利…

微调预训练的 NLP 模型

动动发财的小手,点个赞吧! 针对任何领域微调预训练 NLP 模型的分步指南 简介 在当今世界,预训练 NLP 模型的可用性极大地简化了使用深度学习技术对文本数据的解释。然而,虽然这些模型在一般任务中表现出色,但它们往往缺…

vue进阶----路由

目录 前端路由的概念与原理 什么是路由 SPA 与前端路由 前端路由 前端路由的工作方式 实现简易的前端路由 vue-router 的基本用法 vue-router vue-router 安装和配置的步骤 声明路由的匹配规则 vue-router 的常见用法 1、路由重定向 2、嵌套路由 3、动态路由匹配 …

Stable Diffusion高阶技能(1)-掌握这些,你也能绘出惊艳画作

开篇 初踏入AI作画的世界,你可能会对如何制造出惊艳的艺术作品而困惑。作为一个前沿技术的探索者,我在这一篇文章中,会和你一同揭秘如何用正确的提示词操控AI的“透视”,将最美的画面展现在你眼前。 技能一、提高图片质量的高阶手法 在数量众多的元素中,我们如何做出最…

Vue组件库Element-常见组件-Form表单

Form表单 Form 表单&#xff1a;由输入框、选择器、单选框、多选框等控件组成&#xff0c;用以收集、检验、提交数据 具体关键代码如下&#xff1a; <template><div><el-row><!-- button 按钮 --><el-button>默认按钮</el-button><e…

DDPM 知识点

Generative Modeling by Estimating Gradients of the Data Distribution | Yang Song Score Matching 系列 (一) Non-normalized 模型估計 | 棒棒生

基于单片机智能饮水机加热系统的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;LCD1602液晶显示当前水温&#xff0c;定时提醒&#xff0c;水量变化DS18B20检测当前水体温度&#xff1b;水位传感器检测当前水位&#xff1b;继电器驱动加热片进行水温加热&#xff1b;定时提醒喝水&#xff0c;蜂鸣器报警&#x…

一键报警终端怎么样

一键报警终端是一种便携式设备&#xff0c;用于紧急情况下的一键求救。通过一键报警终端&#xff0c;用户可以发送紧急求助信号给预设的联系人或报警中心&#xff0c;以便及时获得救援。一键报警终端的主要功能和特点如下&#xff1a;1. 便携式设计&#xff1a;一键报警终端通常…

【Android studio】学号及姓名的输入保存页面

一、设计需求 设计一个页面有两个编辑框&#xff0c;分别输入学号和姓名。有两个按钮&#xff0c;一个是修改按钮&#xff0c;当按下修改按钮&#xff0c;编辑框可以进行编辑&#xff1b;一个是保存按钮&#xff0c;当按下保存按钮&#xff0c;使编辑框显示当前的内容并且编辑…

在线性能分析工具Arthas基于Springboot安装配置使用和Arthas Tunnel安装配置使用

概要 Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时&#xff0c;类加…

Python Web开发入门教程(非常详细)

Python是一种非常流行的编程语言&#xff0c;被广泛应用于数据科学、Web开发、人工智能、机器学习等领域。Python语言易学易用&#xff0c;是许多初学者进入编程世界的入门选择。然而&#xff0c;学习Python并不是一件简单的事情&#xff0c;尤其是对于初学者而言。在本文中&am…

深度学习——优化器Optimizer

代码以及详细注释&#xff1a; import torch import torch.utils.data as Data import torch.nn.functional as F import matplotlib.pyplot as plt# torch.manual_seed(1) # reproducible """超参数 """ # 学习率 LR 0.01 # 批大小 BATCH_…

API测试之Postman使用完全指南

前言 Postman是一个可扩展的API开发和测试协同平台工具&#xff0c;可以快速集成到CI/CD管道中。旨在简化测试和开发中的API工作流。 Postman 工具有 Chrome 扩展和独立客户端&#xff0c;推荐安装独立客户端。 Postman 有个 workspace 的概念&#xff0c;workspace 分 pers…

16、Python读取气象数据的正确姿势

文章目录 一、气象数据格式&#xff08;常用&#xff09;二、单个文件读取1. 常规格式2. CSV格式3. NetCDF格式4. GRIB格式 一、气象数据格式&#xff08;常用&#xff09; 常规格式&#xff08;Plain Text&#xff09;&#xff1a;气象数据可以使用纯文本格式进行存储&#xf…