【问题标题】:Create a matrix ( mx n) with gaussian random distribution [closed]创建具有高斯随机分布的矩阵 (mx n) [关闭]
【发布时间】:2014-09-06 09:36:52
【问题描述】:

当 1 的个数为 a% 且 0 的个数为 (100-a)% 时,如何创建具有数字 0 和 1 的随机高斯分布的 Matlab 矩阵 (m x n)?

例如在一维中是“00000010001001011010111011101111111111111110110101001010010001000000”,但我想要二维矩阵,这样矩阵的中心有很多“1”,矩阵的边界有很多“0”(将 1 更改为 0,从中心到边界的高斯分布)。

高斯矩阵的定义见here

【问题讨论】:

  • 如果矩阵只包含 0 和 1,矩阵如何是高斯分布?这没有任何意义。你想要一个高斯矩阵,还是想要一个由 0 和 1 组成的矩阵,根据上面列出的百分比填充?它只能是其中之一。
  • 我想对于足够大的矩阵,矩阵中“圆圈”内的 1 的密度可以近似为高斯分布。但除此之外,总体密度几乎不会满足 (a,1-a) 类型约束。
  • 为什么不直接定义所有1的圆,总面积为a%,其余元素为0,总面积为(100-a)% ?你刚才定义的不是高斯分布。
  • @rayryeng ,你假设平均 a 和方差 b
  • 您定义为问题描述的内容根本不是高斯的,因此不需要均值或方差。给定一个大小为 m x n 的矩阵,并给定面积为 a%,首先确定您需要的半径,然后在 m x n 矩阵的中心生成一个全为 1 的圆。您设置为 0 的其余元素。

标签: matlab random matrix gaussian


【解决方案1】:

好的,您似乎希望在任何时候都有1 的概率由某种高斯函数控制。

1) 创建一个二维高斯函数(例如使用fspecial),在 0 和 1 之间缩放。

2) 创建一个相同大小的二维随机矩阵(使用rand)。

3) 创建一个包含零的输出矩阵,并在随机值低于高斯的地方将其设置为 1。

myoutput(r<g) = 1;

找到一个能给出你想要的总体概率的高斯是另一回事。

【讨论】:

  • 感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-13
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
  • 2019-06-10
  • 2015-04-26
相关资源
最近更新 更多