matlab 生成给定概率的随机数

2023-12-04

我想以给定的概率生成一个随机数,但我不知道如何:

我需要一个 1 到 3 之间的数字

num = ceil(rand*3);

但我需要不同的值来产生不同的概率,例如。

0.5 chance of 1
0.1 chance of 2
0.4 chance of 3

我确信这很简单,但我不知道该怎么做。


简单的解决方案是生成一个均匀分布的数字(使用rand),并对其进行一些操作:

r = rand;
prob = [0.5, 0.1, 0.4];
x = sum(r >= cumsum([0, prob]));

或者单行:

x = sum(rand >= cumsum([0, 0.5, 0.1, 0.4]));

解释

Here r是 0 到 1 之间均匀分布的随机数。要生成 1 到 3 之间的整数,技巧是将 [0, 1] 范围分为 3 段,其中每段的长度与其对应的概率成正比。就您而言,您将拥有:

  • 段[0, 0.5),对应数字1。
  • 段[0.5,0.6),对应数字2。
  • 段[0.6, 1],对应数字3。

的概率r落在任何分段内的概率与您想要的每个数字的概率成正比。sum(r >= cumsum([0, prob]))只是将整数映射到其中一个段的一种奇特方式。

扩大

如果您有兴趣创建随机数向量/矩阵,可以使用循环或arrayfun:

r = rand(3); % # Any size you want
x = arrayfun(@(z)sum(z >= cumsum([0, prob])), r);

当然,还有一个向量化的解决方案,我只是懒得写了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab 生成给定概率的随机数 的相关文章

  • 在 matlab 代码中使用 dll 文件

    我需要使用 Matlab 中由 dll 文件定义的函数 我有一个例子 那个家伙将 dll 转换为 mexw32 文件 但我知道我是如何做到这一点的 我尝试使用加载库但它没有创建任何文件 我怎样才能做到这一点 loadlibrary http
  • 这个按位运算如何检查 2 的幂?

    我正在看一些应该很简单的代码 但我的数学在这里严重失败 下面是一个使用以下条件检查数字是否为 2 的幂的条件 if num 1 num num 1 make num pow of 2 我的问题是 如何在 num 和 num 1 之间使用按位
  • 如何四舍五入到一半,始终为正方向? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何实现以下舍入 0 0126083
  • 简单 Haskell Monad - 随机数

    我正在尝试扩展代码这个帖子 https stackoverflow com questions 3944170 haskell and state 接受的答案 允许我能够基于以种子作为参数的函数 randomGen 调用 randomGen
  • 比较批处理文件中的两个数字

    我在这个网站上搜索了我的问题 但没有找到解决我问题的方法 系统为玩家和计算机提供一个从 2 到 12 的随机数 这有 3 部分 X 大于 Y 如果 X 小于 Y 以及当 X 与 Y 相同 当我开始 bat 效果很好 我选择Play Game
  • Matlab的导入函数的范围是什么?

    我正在尝试将一些用 Matlab 编写的代码转换为独立的 编译的 Matlab 应用程序 然而 在出现一些奇怪的错误之后 我意识到代码大量使用了从路径中添加和删除的操作 以避免多次使用多个具有相同名称 但结果 计算不同 的函数这一事实 环顾
  • Matlab:3D 堆积条形图

    我正在尝试创建一个 3D 堆积条形图 如这个问题所示 Matlab 中的 3D 堆叠条形图 https stackoverflow com questions 13156133 3d stacked bars in matlab 5D 然而
  • 将 Matlab 数组移植到 C/C++

    我正在将 matlab 程序移植到 C C 我有几个问题 但最重要的问题之一是 Matlab 将任何维度的数组都视为相同 假设我们有一个这样的函数 function result f A B C result A 2 B C A B and
  • FMINCON 的替代方案

    除了 fmincon 之外还有其他更快 更高效的求解器吗 我正在使用 fmincon 来解决特定问题 但对于中等大小的向量变量来说 我的内存不足 我也没有任何超级计算机或云计算选项可供使用 我知道任何替代解决方案仍然会耗尽内存 但我只是想看
  • 如何在 MATLAB 编译的应用程序中运行外部 .m 代码? [复制]

    这个问题在这里已经有答案了 我有一个 MATLAB 项目 我使用 MCC 对其进行编译以获得单个可执行文件 然后我想知道外部程序员是否可以在 exe 中执行他的一些 m 文件 而无需重新编译整个项目 重点是提供一个应用程序 其他开发人员可以
  • 如何舍入、取整、取整、截断

    如何对 jq jq 1 5 1 a5b5cbe 中的数字进行舍入 取整 取整和截断 例如 与 mass 188 72 我想 mass 188 有地板 mass 189 与天花板和圆形 舍入示例 5 52 gt 6 5 50 gt 5 or
  • 将 kinect RGB 和深度值转换为 XYZ 坐标

    我正在寻找一种简单的方法将 kinect RGB 和深度值转换为 XYZ 坐标 使用 MATLAB 我的目标是一个输入为以下内容的函数 每个点的 RGB 和深度值Kinect相机 并输出 每个点的 x y 和 z 值 RGB 深度 RGB
  • 数学/算法使图像适合屏幕保留纵横比

    我需要数学 算法方面的帮助来拍摄已知尺寸的图像并适合两个屏幕尺寸之一 720 x 480 或 1280 x 1024 图像尺寸来自 XML 文件 但这些尺寸是 Web 尺寸 我还从 XML 中选择了一些图像 这些图像的分辨率可能比 Web
  • 在 MATLAB 中绘图后恢复轴

    从文本文件绘制多种方法的输出后 未显示轴的右侧和上侧 我需要拥有它们并将它们加粗 就像当前的轴一样 绘制的数据来自存储每种方法数据的文件 每个数据文件都是一个 256x2 文件 包含 0 1 之间的值 第一列是精度 第二列是召回率 figu
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • MATLAB:将当前文件夹设置为脚本位置

    我在不同的文件夹中有一些脚本和数据 我使用addpath和相对路径经常 我的问题是 只有当我的当前文件夹是我执行的脚本所在的位置时 这才有效 例如 如果我执行添加路径 X 的脚本 A 然后执行位于路径 X 中的脚本 B 则 Matlab 不
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open
  • 将名称字符串编码为唯一的数字

    我有一大堆名字 数以百万计 他们每个人都有一个名字 一个可选的中间名和一个姓氏 我需要将这些名称编码为唯一代表这些名称的数字 编码应该是一对一的 即一个名称只能与一个数字相关联 一个数字只能与一个名称相关联 对此进行编码的明智方法是什么 我
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 应用对数来导航树

    我曾经知道一种使用对数从树的一片叶子移动到树的下一个 有序 叶子的方法 我认为它涉及获取 当前 叶子的位置值 排名 并将其用作从根向下到新目标叶子的新遍历的种子 一直使用对数函数测试来确定是否沿着右或左节点向下到达叶子 我已经不记得如何运用

随机推荐

  • Android - 广播接收器没有被触发

    我知道这里已经被问了很多 但我已经在互联网上搜索了几个小时 我什至重复使用了以前的一些代码来接收短信 但我什么也没得到 因此 这里是接收短信的基本应用程序 但该应用程序从未收到意图 我认为如果文本是从同一部手机发送的 则意图可能会被忽略 但
  • 尽管为“子视图”赋予了值,但无法将空子视图添加到 ViewGroup

    我的应用程序在启动时立即崩溃 由于某种原因 它声明它是一个 IllegalArgumentException 尽管我不明白为什么 我已经正确实例化了 setContentView 我尝试仅在没有 R id 的情况下将参数设置为 Activi
  • 动态数组的惯用初始化是否会调用未定义的行为?

    这个问题可能有点争议 我在块范围内有以下代码 int a malloc 3 sizeof int if a error handling a 0 0 a 1 1 a 2 2 我认为这段代码调用了UB由于指针算术超出范围 原因是 有效型对象指
  • 单击下一步按钮时无法获取当前页面作为参数

    我试图在以下情况下获取页码作为参数next单击按钮 我正在尝试使用以下代码来实现它 onPaging function pgButton if pgButton next window alert next clicked n page u
  • 在 ASP.NET 中通过 C# 使用 Ajax 进行文件上传

    我需要使用 FileUpload 上传图像而无需回发 使用 Ajax 我尝试了很多示例 但是在所有回发即将到来或他们正在使用 PHP 时 任何人都可以帮助我在 ASP Net 中使用 ajax 进行单文件上传或多文件上传使用 C SWF上传
  • Firebase 函数总是超时完成

    我正在使用 firebase 功能通过云消息传递创建通知 但我总是收到此错误 Function execution took 60006 ms finished with status timeout 但通知有效 这是我在index js中
  • 如何破解包含连字符的长网址

    我正在尝试使用乳胶打破长网址 我有 3 个链接 第一个包含连字符的链接不起作用 但其他两个链接可以工作 因为它们不包含连字符 我像这样使用 url the url to brak hline textbf Documentation Ric
  • 如何从 Jasper Report 调用存储过程?

    如何从 Jasper Report 调用存储过程 The JasperReports Ultimate Guide包含有关使用存储过程的信息 必须满足某些条件才能将存储过程调用放入报告模板的 SQL 查询字符串中 通过 JDBC 调用时 存
  • 为什么 sudo 会改变 PATH? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 这是PATH没有 sudo 的变量 echo echo PATH sh opt local ruby bin usr bin bin 这是PATH带有 sudo 的变量 echo e
  • 如何使 Excel 从 TFS 2010 工作项查询自动刷新

    我们使用 Microsoft 默认提供的 MSF Agile 5 0 流程模板来运行我们的项目 具体来说 迭代待办事项列表 Excel 表格对于进行项目管理非常有用 然而 我们遇到过第 1 个工作表上的迭代待办事项列表不是最新的情况 打开
  • 如何在 SQL Server 中选择舍入数字

    我有一个包含此列的工资表 EMPLOYEE NAME SALARY ANNA 113750 MARRY 124300 BELLA 105100 我想将工资金额四舍五入到附近的 2000 或 5000 小数 所以对于这种情况 它会像 EMPL
  • 升级应用程序时安装到同一路径

    我有一个正在实施自动更新的应用程序 我有一个 Web 服务 程序会检查该服务 如果需要升级 则会下载并运行新的安装程序 Visual Studio 2005 安装项目 然后程序重新启动 一切都很好 但是如何确保安装程序中的安装路径默认与用户
  • 如何子类化 NSDate?

    我第一次尝试对 NSDate 进行子类化 为其提供我需要的 2 个方法 编译正常 但在运行时我尝试访问它时出现错误 可以说我只想要子类中未修改的当前日期 myNSDate date 我收到错误 NSDate initWithTimeInte
  • div 内的 Jquery 复选框一次选中一个

    所以我有一个自动生成的 div 里面有 3 个具有不同 id 和名称的复选框 默认情况下没有一个被选中 如果其中一个碰巧被检查 那么我需要另外两个未被检查 所以一次只能检查一个 所以全部未选中或仅选中一项 div class configo
  • “make”的输出是共享对象而不是可执行文件

    编辑 这似乎是一个 g 问题 因为使用 clang 编译确实输出一个可执行文件 我编写了一个 C 应用程序 它具有主函数 创建应用程序窗口 加载 3D fbx 文件并使用 opengl 绘制该文件 要创建用于编译的 Makefile 我使用
  • Flash 中的地理定位

    我正在 Flash 中构建一个小型网络应用程序 有没有解决方案可以获取用户的地理位置 最简单的方法是与 JavaScript 函数交互 在您的 HTML 中
  • 如何使用 selenium webDriver 打开具有特定配置文件的 MS Edge?

    我正在边缘浏览器上运行自动化 Edge 浏览器支持配置文件 每当我从 webdriver 启动 Edge 时 它 都会创建新的配置文件 有什么方法可以设置选项以使用给定的用户配置文件启动边缘 我以Java语言为例 你可以使用user dat
  • mysql中哪种内连接sql最有效、最好?

    mysql中哪种内连接sql最有效 最好 1 select t01 uname t02 deptname from user t01 department t02 where t01 deptid t02 deptid and t01 ui
  • 当应用程序被终止/在后台时检测 Android 7 及更高版本中的连接变化

    Problem 所以问题是我有一个应用程序 每当 WiFi 连接 带有连接的 SSID 和其他信息 或断开连接 通过移动网络 时 它都会向我们的后端发送请求 但是 随着 Android 7 N 及更高版本的更改 CONNECTIVITY C
  • matlab 生成给定概率的随机数

    我想以给定的概率生成一个随机数 但我不知道如何 我需要一个 1 到 3 之间的数字 num ceil rand 3 但我需要不同的值来产生不同的概率 例如 0 5 chance of 1 0 1 chance of 2 0 4 chance