File: random_rand.html

package info (click to toggle)
freemat 4.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 141,800 kB
  • ctags: 14,082
  • sloc: ansic: 126,788; cpp: 62,046; python: 2,080; perl: 1,255; sh: 1,146; yacc: 1,019; lex: 239; makefile: 100
file content (141 lines) | stat: -rw-r--r-- 5,659 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FreeMat: RAND Uniform Random Number Generator</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">FreeMat
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('random_rand.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">RAND Uniform Random Number Generator </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Section: <a class="el" href="sec_random.html">Random Number Generation</a> </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<p>Creates an array of pseudo-random numbers of the specified size. The numbers are uniformly distributed on <code>[0,1)</code>. Two seperate syntaxes are possible. The first syntax specifies the array dimensions as a sequence of scalar dimensions: </p>
<pre class="fragment">  y = rand(d1,d2,...,dn).
</pre><p> The resulting array has the given dimensions, and is filled with random numbers. The type of <code>y</code> is <code>double</code>, a 64-bit floating point array. To get arrays of other types, use the typecast functions.</p>
<p>The second syntax specifies the array dimensions as a vector, where each element in the vector specifies a dimension length: </p>
<pre class="fragment">  y = rand([d1,d2,...,dn]).
</pre><p> This syntax is more convenient for calling <code>rand</code> using a variable for the argument.</p>
<p>Finally, <code>rand</code> supports two additional forms that allow you to manipulate the state of the random number generator. The first retrieves the state </p>
<pre class="fragment">  y = rand('state')
</pre><p> which is a 625 length integer vector. The second form sets the state </p>
<pre class="fragment">  rand('state',y)
</pre><p> or alternately, you can reset the random number generator with </p>
<pre class="fragment">  rand('state',0)
</pre> <h1><a class="anchor" id="Example"></a>
Example</h1>
<p>The following example demonstrates an example of using the first form of the <code>rand</code> function.</p>
<pre class="fragment">--&gt; rand(2,2,2)

ans = 

(:,:,1) = 
    0.8539    0.1733 
    0.0415    0.1300 

(:,:,2) = 
    0.7163    0.5752 
    0.5953    0.3728 
</pre><p>The second example demonstrates the second form of the <code>rand</code> function.</p>
<pre class="fragment">--&gt; rand([2,2,2])

ans = 

(:,:,1) = 
    0.4992    0.2797 
    0.6513    0.3209 

(:,:,2) = 
    0.6244    0.7774 
    0.0934    0.1820 
</pre><p>The third example computes the mean and variance of a large number of uniform random numbers. Recall that the mean should be <code>1/2</code>, and the variance should be <code>1/12 ~ 0.083</code>.</p>
<pre class="fragment">--&gt; x = rand(1,10000);
--&gt; mean(x)

ans = 
    0.4952 

--&gt; var(x)

ans = 
    0.0845 
</pre><p>Now, we use the state manipulation functions of <code>rand</code> to exactly reproduce a random sequence. Note that unlike using <code>seed</code>, we can exactly control where the random number generator starts by saving the state.</p>
<pre class="fragment">--&gt; rand('state',0)    % restores us to startup conditions
--&gt; a = rand(1,3)      % random sequence 1

a = 
    0.3759    0.0183    0.9134 

--&gt; b = rand('state'); % capture the state vector
--&gt; c = rand(1,3)      % random sequence 2  

c = 
    0.3580    0.7604    0.8077 

--&gt; rand('state',b);   % restart the random generator so...
--&gt; c = rand(1,3)      % we get random sequence 2 again

c = 
    0.3580    0.7604    0.8077 
</pre> </div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="index.html">FreeMat Documentation</a></li><li class="navelem"><a class="el" href="sec_random.html">Random Number Generation</a></li>
    <li class="footer">Generated on Thu Jul 25 2013 17:17:45 for FreeMat by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
  </ul>
</div>
</body>
</html>