我想在-10到10之间得到20个随机整数,我想在matlab中使用rand函数。
我想到了10的myltiplying,然后找到了一种只获得-10到10之间的方法,并对超出限制[-10,10]的每个其他数字使用迭代来获得一个新数字在极限内。
有更好,更快的方式吗?
答案 0 :(得分:7)
使用
randomIntegers = randi([-10,10],[20,1])
生成-10到10之间的随机整数向量。
答案 1 :(得分:2)
虽然Jonas的解决方案非常好,但randi
并不在MATLAB的早期版本中。我相信所有版本都有rand
。使用rand
的解决方案是:
randomIntergers = floor(a + (b-a+1) .* rand(20,1));
其中[a,b]是您希望分发的值的范围。
如果您使用round(a + (b-a))
,您将对'a'和'b'的值产生不均匀的影响。这可以使用hist()
功能确认。这是因为映射到'a'和'b'的域的大小是该范围内所有其他成员的一半。