<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/170825</link>
    <title>MATLAB Central Newsreader - random sample</title>
    <description>Feed for thread: random sample</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Thu, 12 Jun 2008 09:07:02 -0400</pubDate>
      <title>random sample</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/170825#437084</link>
      <author>wang wang</author>
      <description>Hi,everyone~How to generate a random sample from a &lt;br&gt;
specific density function using matlab?</description>
    </item>
    <item>
      <pubDate>Thu, 12 Jun 2008 11:17:20 -0400</pubDate>
      <title>Re: random sample</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/170825#437108</link>
      <author>ImageAnalyst</author>
      <description>On Jun 12, 5:07=A0am, &quot;wang wang&quot; &amp;lt;pli...@gmail.com&amp;gt; wrote:&lt;br&gt;
&amp;gt; Hi,everyone~How to generate a random sample from a&lt;br&gt;
&amp;gt; specific density function using matlab?&lt;br&gt;
-----------------------------------------------------&lt;br&gt;
Short answer: construct the cumulative distribution function of your&lt;br&gt;
desired distribution y=3Dcdf(x).  Then &quot;invert&quot; it to get x=3D&quot;cdf-1&quot;(y),&lt;br&gt;
then plug in a y gotten from the rand() function to get an x that&lt;br&gt;
would be as if it were generated from your desired pdf.</description>
    </item>
    <item>
      <pubDate>Fri, 13 Jun 2008 09:14:02 -0400</pubDate>
      <title>Re: random sample</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/170825#437267</link>
      <author>wang wang</author>
      <description>ImageAnalyst &amp;lt;imageanalyst@mailinator.com&amp;gt; wrote in &lt;br&gt;
message &amp;lt;0552cab7-b53e-4473-ad6a-&lt;br&gt;
02413d924362@27g2000hsf.googlegroups.com&amp;gt;...&lt;br&gt;
&amp;gt; On Jun 12, 5:07=A0am, &quot;wang wang&quot; &amp;lt;pli...@gmail.com&amp;gt; &lt;br&gt;
wrote:&lt;br&gt;
&amp;gt; &amp;gt; Hi,everyone~How to generate a random sample from a&lt;br&gt;
&amp;gt; &amp;gt; specific density function using matlab?&lt;br&gt;
&amp;gt; -----------------------------------------------------&lt;br&gt;
&amp;gt; Short answer: construct the cumulative distribution &lt;br&gt;
function of your&lt;br&gt;
&amp;gt; desired distribution y=3Dcdf(x).  Then &quot;invert&quot; it to &lt;br&gt;
get x=3D&quot;cdf-1&quot;(y),&lt;br&gt;
&amp;gt; then plug in a y gotten from the rand() function to get &lt;br&gt;
an x that&lt;br&gt;
&amp;gt; would be as if it were generated from your desired pdf.&lt;br&gt;
&lt;br&gt;
Thank you imageanalyst.But I really don't understand the &lt;br&gt;
method. I am a beginner,would you mind giving me some &lt;br&gt;
suggestion about the references or papers about this &lt;br&gt;
method?</description>
    </item>
    <item>
      <pubDate>Fri, 13 Jun 2008 10:01:05 -0400</pubDate>
      <title>Re: random sample</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/170825#437272</link>
      <author>us</author>
      <description>&quot;wang wang&quot;:&lt;br&gt;
&amp;lt;SNIP random sampling evergreen...&lt;br&gt;
&lt;br&gt;
&amp;gt; Hi,everyone~How to generate a random sample from a &lt;br&gt;
&amp;gt; specific density function using matlab?&lt;br&gt;
&lt;br&gt;
one of the many solutions is outlined below (copy/paste)&lt;br&gt;
in addition, if you own the stats tbx, look at&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;help randsample;&lt;br&gt;
&lt;br&gt;
% the snippet&lt;br&gt;
% the data&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nr=100000;	% &amp;lt;- #samples&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;d=[.1,.5,.1,.3]; % &amp;lt;- the distribution: sum==1!&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ds=cumsum([0,d]);&lt;br&gt;
% - show dist&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;subplot(2,1,1);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stairs(ds(2:end),'o-');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set(gca,...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'xlim',[.5,numel(d)+.5],...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'xtick',1:numel(d),...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'xticklabel',d);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ylabel('cumulative frequency');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title('distribution');&lt;br&gt;
% the engine&lt;br&gt;
% - get rands according to dist&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[n,ix]=histc(rand(1,nr),ds);&lt;br&gt;
% - the random numbers according to your dist&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rn=d(ix);&lt;br&gt;
% - prepare the hist&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n=n(1:end-1); % we never get rands == 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ns=cumsum(n);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nsm=max(ns);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n=n./nsm;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ns=ns./nsm;&lt;br&gt;
% the result&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;subplot(2,1,2);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bar(n);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hold on;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line(1:numel(n),ns,...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'marker','s',...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'markerfacecolor',[0,0,0],...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;'color',[0,0,0]);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set(gca,'xticklabel',d);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xlabel('probability distribution');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ylabel('frequency / cumulative frequency');&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;title(sprintf('%d samples',nr));&lt;br&gt;
&lt;br&gt;
us</description>
    </item>
  </channel>
</rss>

