MATLABで13〜20の乱数を生成するにはどうすればよいですか?
均一に分布した擬似乱数整数を探している場合は、次を使用します。
randi([13, 20])
http://www.mathworks.com/help/techdoc/ref/Rand.html
n = 13 + (Rand(1) * 7);
r = 13 + 7.*Rand(100,1);
ここで、100,1は目的のベクトルのサイズです
ocw.mit.eduは、私を支援してくれる素晴らしいリソースです。 randiが最適なオプションですが、数字を楽しみたい場合は、Randでfloor関数を使用して、必要なものを取得してください。
数字の線を引いて思いついた
floor(Rand*8) + 13
以下も使用できます。
round(mod(Rand.*max,max-1))+min
13〜20の浮動乱数が必要な場合
(20-13).*Rand(1) + 13
13〜20の整数の乱数が必要な場合
floor((21-13).*Rand(1) + 13)
注:20を21に置き換えることにより、コメント「これは20を除外します」に記載されている問題を修正します。
最良の解決策はrandint
ですが、この関数は整数を生成します。
Rand
を丸め関数で使用できます
r = round(a + (b-a).*Rand(m,n));
これにより、aとbの間の実乱数が生成されます。出力行列のサイズはm * nです
特定の範囲内のすべての数をランダムに生成する場合は、試してみてください
r = randi([a b],1,d)
a
=開始点
b
=エンドポイント
d
=生成する数。ただし、dはb-a
以下である必要があることに注意してください
区間[a、b]の一様分布から値を生成します。
r = a + (b-a).*Rand(100,1);