• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MATLABの乱数生成関数 rand( ) について)

MATLABの乱数生成関数rand()について

このQ&Aのポイント
  • MATLABの乱数生成関数rand()について説明します。
  • rand()関数は、[0, 1]の範囲で一様乱数を生成します。
  • rand('state', sum(100*clock));という書き方をすることで、乱数の生成状態を指定することもできます。

質問者が選んだベストアンサー

  • ベストアンサー
  • sgwjn
  • ベストアンサー率70% (47/67)
回答No.1

Y = rand(n); は乱数発生器が固定されています。 ですので、rand関数を実行するたびに同じルールに従って乱数を生成します。 対して、 rand('state',sum(100*clock)); Y = rand(n); は使用する乱数発生器を実行時の時間を基準に決定します。 ですので、rand関数を実行するたびにルールを変更して乱数を生成します。(変更した結果、同じルールが選択される場合もあります) 任意の範囲で正負を付けたい場合は、例えば以下のようにすれば可能です。 例:-1000~1000の乱数の場合 (1) 乱数1生成 (2) 乱数2生成 (3) Ans = 1000 * 乱数1 (4) 乱数2が奇数の場合 Ans = -Ans

marucha
質問者

お礼

回答ありがとうございました. 違いが理解できました. 乱数発生器を実行時の時間を基準に決定するほうがよさそうなので そちらを採用しようと思います. 区間指定方法も回答を参考にさせていただきます.

すると、全ての回答が全文表示されます。

関連するQ&A