我想知道在Matlab中是否有一个函数可以从一组数字中生成随机数?例如,假设我有一个集合-11,我如何从这个集合中生成数字?我曾尝试使用randi( -1 , 1 ),但这显然会生成数字-1,0和1,我希望统一生成不带0的数字,只包括-1和1。如果这看起来是一个微不足道的问题,但我似乎找不到答案,我提前道歉。
感谢您能提供的任何帮助。
编辑:我已经为上面的问题找到了一个简单的解决方案:(randi(0,1)*2) - 1。这只解决了这个问题,而不是从指定的集合中生成数字。
发布于 2012-05-04 01:09:56
那么,有没有一个函数可以从集合1:2中统一生成整数,或者,一般来说,从集合1:n中生成整数,其中n是集合中元素的数量?(是)
如果上面的答案是肯定的,那么这些数字可以用作生成的集合的索引吗?(是)
A = [-1 1];
n = numel(A);
A(ceil(rand*n))它会随机和均匀地抽样吗?(是)
发布于 2012-05-04 01:03:46
生成1到N范围内的均匀随机整数(其中N是集合的大小)。然后使用它来索引集合。
发布于 2012-05-04 01:12:15
>> S = sign(rand(1,10) - .5); S(S ~= 0)
ans =
1 -1 1 1 -1 1 -1 -1 1 -1这显然是专门针对您的特定示例的,但也可以应用相同的一般概念。
编辑:下面是一个更一般的例子:
>> Set = [1 10 100]
Set =
1 10 100
>> Set(randi([1 3], 10, 1))
ans =
100 100 100 100 100 10 10 1 100 1https://stackoverflow.com/questions/10436040
复制相似问题