Path: news.mathworks.com!not-for-mail From: <HIDDEN> Newsgroups: comp.soft-sys.matlab Subject: Re: Random Number Generation Date: Thu, 27 Jun 2013 05:23:06 +0000 (UTC) Organization: The MathWorks, Inc. Lines: 22 Message-ID: <kqgi7q$jpl$1@newscl01ah.mathworks.com> References: <i1fhko$rsc$1@fred.mathworks.com> <i1g240$rho$1@fred.mathworks.com> <i1g51j$5g4$1@fred.mathworks.com> <kqf3he$rv4$1@newscl01ah.mathworks.com> Reply-To: <HIDDEN> NNTP-Posting-Host: www-02-blr.mathworks.com Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: newscl01ah.mathworks.com 1372310586 20277 172.30.248.47 (27 Jun 2013 05:23:06 GMT) X-Complaints-To: news@mathworks.com NNTP-Posting-Date: Thu, 27 Jun 2013 05:23:06 +0000 (UTC) X-Newsreader: MATLAB Central Newsreader 1187260 Xref: news.mathworks.com comp.soft-sys.matlab:798406 "taffi" wrote in message <kqf3he$rv4$1@newscl01ah.mathworks.com>... > i need to use a std deviation as well. i have a max, min, mean and also a std value. How can i get random numbers of beta distribution wid a certain standard deviation. ------------------- As I said back in 2010. "You can multiply the first two arguments of betarnd by any common factor to change the distribution's variance at your pleasure without affecting the mean." This can be done as follows. Call a = max, b = min, m = mean, and s = std. Then you can generate the desired beta distribution with f = ((b-m)*(m-a)-s^2)/s^2; x = a+(b-a)*betarnd((m-a)/(b-a)*f,(b-m)/(b-a)*f,M,N); As you can see, that "common factor" is the above 'f'. Note that both m and s are constrained by the inequalities a < m < b 0 < s < sqrt((b-m)*(m-a)) so the choice of s isn't fully "at your pleasure". You can consult the website http://en.wikipedia.org/wiki/Beta_distribution to check that the above formula results in the desired mean and standard deviation. Roger Stafford