title: Lognormal random numbers in specific range in Matlab
body: <p>I want to develop a lognormal distribution with range [0.42,1.19], whose few elements are given as <code>D=[1.19,1.00,0.84,0.71,0.59,0.50,0.42]</code>. The mean should be <code>0.84</code> and standard deviation as small as possible. Also given is that the 90% of cdf (=90% of the grains) lies between <code>0.59 and 1.19</code>.</p>
  
  <p>Once I know all the elements of this lognormal distribution which incorporate the given conditions I can find its pdf, which is what I require. Here are simple steps I tried:</p>
  
  <pre><code>D=[1.19,1.00,0.84,0.71,0.59,0.50,0.42];
  
  s=0.30; % std dev of the lognormal distribution
  
  m=0.84; % mean of the lognormal distribution
  
  mu=log(m^2/sqrt(s^2+m^2)); % mean of the associated normal dist.
  
  sigma=sqrt(log((s^2/m^2)+1)); % std dev of the associated normal dist.
  
  [r,c]=size(D);
  
  for i=1:c
  
  D_normal(i)=mu+(sigma.*randn(1));
  
  w(i)=(D_normal(i)-mu)/sigma; % the probability or the wt. percentage
  
  end
  
  sizes=exp(D_normal);
  </code></pre>