首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从集合生成均匀随机数

从集合生成均匀随机数
EN

Stack Overflow用户
提问于 2012-05-04 01:01:12
回答 3查看 1.9K关注 0票数 1

我想知道在Matlab中是否有一个函数可以从一组数字中生成随机数?例如,假设我有一个集合-11,我如何从这个集合中生成数字?我曾尝试使用randi( -1 , 1 ),但这显然会生成数字-1,0和1,我希望统一生成不带0的数字,只包括-1和1。如果这看起来是一个微不足道的问题,但我似乎找不到答案,我提前道歉。

感谢您能提供的任何帮助。

编辑:我已经为上面的问题找到了一个简单的解决方案:(randi(0,1)*2) - 1。这只解决了这个问题,而不是从指定的集合中生成数字。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-04 01:09:56

那么,有没有一个函数可以从集合1:2中统一生成整数,或者,一般来说,从集合1:n中生成整数,其中n是集合中元素的数量?(是)

如果上面的答案是肯定的,那么这些数字可以用作生成的集合的索引吗?(是)

代码语言:javascript
复制
A = [-1 1];
n = numel(A);
A(ceil(rand*n))

它会随机和均匀地抽样吗?(是)

票数 2
EN

Stack Overflow用户

发布于 2012-05-04 01:03:46

生成1到N范围内的均匀随机整数(其中N是集合的大小)。然后使用它来索引集合。

票数 1
EN

Stack Overflow用户

发布于 2012-05-04 01:12:15

代码语言:javascript
复制
>> S = sign(rand(1,10) - .5); S(S ~= 0)

ans =

     1    -1     1     1    -1     1    -1    -1     1    -1

这显然是专门针对您的特定示例的,但也可以应用相同的一般概念。

编辑:下面是一个更一般的例子:

代码语言:javascript
复制
>> Set = [1 10 100]

Set =

     1    10   100

>> Set(randi([1 3], 10, 1))

ans =

   100   100   100   100   100    10    10     1   100     1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10436040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档