web-dev-qa-db-ja.com

MATLABで特定の範囲の乱数を生成します

MATLABで13〜20の乱数を生成するにはどうすればよいですか?

39
crowso

均一に分布した擬似乱数整数を探している場合は、次を使用します。

randi([13, 20])
57
zellus
9
TimCodes.NET
r = 13 + 7.*Rand(100,1);

ここで、100,1は目的のベクトルのサイズです

6
pcofre

ocw.mit.eduは、私を支援してくれる素晴らしいリソースです。 randiが最適なオプションですが、数字を楽しみたい場合は、Randでfloor関数を使用して、必要なものを取得してください。

数字の線を引いて思いついた

floor(Rand*8) + 13
1
ash_bobham

以下も使用できます。

round(mod(Rand.*max,max-1))+min
0
moksef

13〜20の浮動乱数が必要な場合

(20-13).*Rand(1) + 13

13〜20の整数の乱数が必要な場合

floor((21-13).*Rand(1) + 13)

注:20を21に置き換えることにより、コメント「これは20を除外します」に記載されている問題を修正します。

0
M. Allahyari

最良の解決策はrandintですが、この関数は整数を生成します。

Randを丸め関数で使用できます

  r = round(a + (b-a).*Rand(m,n));

これにより、aとbの間の実乱数が生成されます。出力行列のサイズはm * nです

0
PyMatFlow

特定の範囲内のすべての数をランダムに生成する場合は、試してみてください

r = randi([a b],1,d)

a =開始点

b =エンドポイント

d =生成する数。ただし、dはb-a以下である必要があることに注意してください

0

区間[a、b]の一様分布から値を生成します。

      r = a + (b-a).*Rand(100,1);
0
user570593