一様分布の乱数 - MATLAB rand - MathWorks 日本 (2024)

Table of Contents
構文 説明 乱数の行列 指定した区間の乱数 ランダムな整数 乱数発生器のリセット 乱数の 3 次元配列 乱数のデータ型の指定 既存の配列によるサイズの定義 既存の配列で定義されるサイズとデータ型 ランダムな複素数 入力引数 n — 正方行列のサイズ 整数値 sz1,...,szN — 各次元のサイズ (個別の引数として指定) 整数値 sz — 各次元のサイズ (行ベクトルとして指定) 整数値 typename — 作成するデータ型 (クラス) "double" (既定値) | "single" p — 作成する配列のプロトタイプ 数値配列 s — 乱数ストリーム RandStream オブジェクト ヒント 拡張機能 C/C++ コード生成 MATLAB® Coder™ を使用して C および C++ コードを生成します。 スレッドベースの環境 MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。 GPU 配列Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。 分散配列 Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。 バージョン履歴 R2022a: "like" による実数/複素数の一致と、RandStream オブジェクトを指定した "like" の使用 R2014a: 'like' を使って既存の変数のデータ型と一致させる R2013b: 非整数のサイズ入力はサポートなし R2008b: 'seed'、'state'、'twister' の入力は非推奨 参考 トピック MATLAB コマンド Americas Europe Asia Pacific

Main Content

一様分布の乱数

ページ内をすべて折りたたむ

構文

X = rand

X = rand(n)

X = rand(sz1,...,szN)

X = rand(sz)

X = rand(___,typename)

X = rand(___,"like",p)

X = rand(s,___)

説明

X = rand は、区間 (0,1) の一様分布から取り出された乱数スカラーを返します。

X = rand(n) は、一様分布の乱数からなる nn 列の行列を返します。

X = rand(sz1,...,szN) は、sz1×...×szN の乱数の配列を返します。sz1,...,szN はそれぞれの次元のサイズを示します。たとえば、rand(3,4) は 3 行 4 列の行列を返します。

X = rand(sz) は、乱数の配列を返します。サイズ ベクトル szsize(X) を定義します。たとえば、rand([3 4]) は 3 行 4 列の行列を返します。

X = rand(___,typename) は、データ型が typename の乱数の配列を返します。typename の入力値は "single" または "double" です。前述の構文の入力引数のいずれかを使用できます。

X = rand(___,"like",p) は、p のような、すなわちデータ型および実数/複素数の区別が p と同じである、乱数の配列を返します。typename または "like" のどちらか一方のみを指定できます。

X = rand(s,___) は、既定のグローバル ストリームの代わりに、乱数ストリーム s から数値を生成します。ストリームを作成するには、RandStreamを使用します。s の後に、前述の構文にある任意の入力引数の組み合わせを指定できます。

すべて折りたたむ

乱数の行列

ライブ スクリプトを開く

0 から 1 までの範囲の一様分布した乱数から成る 5 行 5 列の行列を生成します。

r = rand(5)
r = 5×5 0.8147 0.0975 0.1576 0.1419 0.6557 0.9058 0.2785 0.9706 0.4218 0.0357 0.1270 0.5469 0.9572 0.9157 0.8491 0.9134 0.9575 0.4854 0.7922 0.9340 0.6324 0.9649 0.8003 0.9595 0.6787

指定した区間の乱数

ライブ スクリプトを開く

区間 (-5,5) の一様分布した数値から成る 10 行 1 列のベクトルを生成します。

r = -5 + (5+5)*rand(10,1)
r = 10×1 3.1472 4.0579 -3.7301 4.1338 1.3236 -4.0246 -2.2150 0.4688 4.5751 4.6489

一般に、区間 (a,b) の N 個の乱数は、式 r = a + (b-a).*rand(N,1) を使って生成できます。

ランダムな整数

ライブ スクリプトを開く

関数 randi (rand ではなく) を使用して、10 から 50 までの範囲の一様分布した 5 つのランダムな整数を生成します。

r = 1×5 43 47 15 47 35

乱数発生器のリセット

ライブ スクリプトを開く

乱数発生器の現在の状態を保存し、1 行 5 列の乱数のベクトルを作成します。

s = rng;r = rand(1,5)
r = 1×5 0.8147 0.9058 0.1270 0.9134 0.6324

乱数発生器を s の状態に戻し、1 行 5 列の乱数のベクトルを新たに作成します。前と同じ値が得られます。

rng(s);r1 = rand(1,5)
r1 = 1×5 0.8147 0.9058 0.1270 0.9134 0.6324

乱数の 3 次元配列

ライブ スクリプトを開く

3×2×3 の乱数の配列を作成します。

X = rand([3,2,3])
X = X(:,:,1) = 0.8147 0.9134 0.9058 0.6324 0.1270 0.0975X(:,:,2) = 0.2785 0.9649 0.5469 0.1576 0.9575 0.9706X(:,:,3) = 0.9572 0.1419 0.4854 0.4218 0.8003 0.9157

乱数のデータ型の指定

ライブ スクリプトを開く

単精度の乱数から成る 1 行 4 列のベクトルを作成します。

r = rand(1,4,"single")
r = 1x4 single row vector 0.8147 0.9058 0.1270 0.9134
class(r)
ans = 'single'

既存の配列によるサイズの定義

ライブ スクリプトを開く

一様分布した乱数の行列を既存の配列と同じサイズで作成します。

A = [3 2; -2 1];sz = size(A);X = rand(sz)
X = 2×2 0.8147 0.1270 0.9058 0.9134

上記の 2 行のコードを 1 行にまとめた一般的なパターンを次に示します。

X = rand(size(A));

既存の配列で定義されるサイズとデータ型

ライブ スクリプトを開く

単精度の乱数からなる 2 行 2 列の行列を作成します。

p = single([3 2; -2 1]);

p とサイズおよびデータ型が同じである乱数の配列を作成します。

X = rand(size(p),"like",p)
X = 2x2 single matrix 0.8147 0.1270 0.9058 0.9134
class(X)
ans = 'single'

ランダムな複素数

ライブ スクリプトを開く

区間 (0,1) 内に実数部と虚数部をもつ正方形領域での一様分布から、ランダムな複素数を 10 個生成します。

a = rand(10,1,"like",1i)
a = 10×1 complex 0.8147 + 0.9058i 0.1270 + 0.9134i 0.6324 + 0.0975i 0.2785 + 0.5469i 0.9575 + 0.9649i 0.1576 + 0.9706i 0.9572 + 0.4854i 0.8003 + 0.1419i 0.4218 + 0.9157i 0.7922 + 0.9595i

入力引数

すべて折りたたむ

n正方行列のサイズ
整数値

正方行列のサイズ。整数値として指定します。

  • n0 の場合、X は空の行列です。

  • n が負の場合、0 として扱われます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

sz1,...,szN各次元のサイズ (個別の引数として指定)
整数値

各次元のサイズ。整数値の個別の引数として指定します。

  • いずれかの次元のサイズが 0 の場合、X は空の配列です。

  • いずれかの次元のサイズが負の場合、そのサイズは 0 として扱われます。

  • 2 番目より後の次元のサイズが 1 の場合、それらの次元は rand で無視されます。たとえば rand(3,1,1,1) では 3 行 1 列の乱数のベクトルが生成されます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

sz各次元のサイズ (行ベクトルとして指定)
整数値

各次元のサイズ。整数値の行ベクトルとして指定します。このベクトルの各要素は対応する次元のサイズを示します。

  • いずれかの次元のサイズが 0 の場合、X は空の配列です。

  • いずれかの次元のサイズが負の場合、そのサイズは 0 として扱われます。

  • 2 番目より後の次元のサイズが 1 の場合、それらの次元は rand で無視されます。たとえば、rand([3 1 1 1]) では 3 行 1 列の乱数のベクトルが生成されます。

例: sz = [2 3 4] は、2×3×4 の配列を作成します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

typename作成するデータ型 (クラス)
"double" (既定値) | "single"

作成するデータ型 (クラス)。"double" または "single" として指定するか、rand をサポートする別のクラスの名前を指定します。

例: rand(5,"single")

p作成する配列のプロトタイプ
数値配列

作成する配列のプロトタイプ。数値配列として指定します。

例: rand(5,"like",p)

データ型: single | double
複素数のサポート: あり

s乱数ストリーム
RandStream オブジェクト

乱数ストリーム。RandStream オブジェクトとして指定します。

例: s = RandStream("dsfmt19937"); rand(s,[3 1])

ヒント

  • rand で生成された数列は randrandi および randn で使用される一様疑似乱数発生器の内部設定値によって定義されます。共有乱数発生器は、rng を使用して制御できます。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する

整数ではない次元を指定するとエラーが発生します。floor を使用して、非整数のサイズ入力を整数に変換してください。

参考

randi | randn | rng | RandStream | sprand | sprandn | randperm

トピック

  • 乱数配列の作成
  • 再現可能な乱数の生成
  • 異なる乱数の生成
  • 指定範囲内の乱数
  • 球内の乱数
  • 乱数ストリームの作成と管理
  • 配列作成関数に対するクラス サポート
  • rand と randn の非推奨構文の置換
  • 起動後に乱数が繰り返される理由

MATLAB コマンド

次の MATLAB コマンドに対応するリンクがクリックされました。

 

コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。

一様分布の乱数 - MATLAB rand- MathWorks 日本 (1)

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

Americas

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europe

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom (English)

Asia Pacific

Contact your local office

一様分布の乱数 - MATLAB rand
- MathWorks 日本 (2024)
Top Articles
Latest Posts
Article information

Author: Edwin Metz

Last Updated:

Views: 6320

Rating: 4.8 / 5 (58 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Edwin Metz

Birthday: 1997-04-16

Address: 51593 Leanne Light, Kuphalmouth, DE 50012-5183

Phone: +639107620957

Job: Corporate Banking Technician

Hobby: Reading, scrapbook, role-playing games, Fishing, Fishing, Scuba diving, Beekeeping

Introduction: My name is Edwin Metz, I am a fair, energetic, helpful, brave, outstanding, nice, helpful person who loves writing and wants to share my knowledge and understanding with you.