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 Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related 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">--> 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">--> 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">--> x = rand(1,10000);
--> mean(x)
ans =
0.4952
--> 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">--> rand('state',0) % restores us to startup conditions
--> a = rand(1,3) % random sequence 1
a =
0.3759 0.0183 0.9134
--> b = rand('state'); % capture the state vector
--> c = rand(1,3) % random sequence 2
c =
0.3580 0.7604 0.8077
--> rand('state',b); % restart the random generator so...
--> 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>
|