Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

What is the code?

Asked by eren eren on 6 Dec 2012

I want to generate random numbers. But i want it like this. for example i want to generate random numbers for The gamma distribution coefficient of skewness 2.

How can i do this?

0 Comments

eren eren

Products

No products are associated with this question.

2 Answers

Answer by José-Luis on 6 Dec 2012
Edited by José-Luis on 6 Dec 2012
Accepted answer
 doc gamrnd

The skewness is a function of one of the two parameters of the distribution, that you can set as you see fit. You just need to set it so the skewness is two (look at the wikipedia article on the gamma distribution).

5 Comments

eren eren on 6 Dec 2012

no i understood that but in gamrnd don't have skewness a place to enter.

José-Luis on 13 Dec 2012

From one of your comments.

When you do this:

i write this on matlab skewness = 2; scale = 1; shape = 2./sqrt(skewness); x=gamrnd(shape,scale) s=skewness(x)

Skewness becomes a variable, and overshadows the built-in skewness function in Matlab. It is good practice not to do that, as problems as the one got might pop-up (you think you are calling a function but you are in fact trying to access a variable).

After clearing your work space to make sure there is no variable called skweness in it, do this instead:

 ske = 2;
 sca = 1;
 shap = 1/sqrt(2);
 x = gamrnd(shap,sca,[1000 1]);
 your_skew = skewness(x); 

Please accept an answer if it helped you.

eren eren on 13 Dec 2012

yes it is working. can i use this, beta, chi squre etc. distributions?

José-Luis
Answer by Jonathan Sullivan on 6 Dec 2012

skewness is simple 2 divided by the square root of the shape parameter for gamma distributions. Here's an example.

skewness = 2;
scale = 1;
shape = 2./sqrt(skewness);
gamrnd(shape,scale)

9 Comments

José-Luis on 13 Dec 2012

What does your code look like? And the error is? It is hard to help you without details.

eren eren on 13 Dec 2012

i write this on matlab skewness = 2; scale = 1; shape = 2./sqrt(skewness); x=gamrnd(shape,scale) s=skewness(x)

and error is;

??? Attempted to access skewness(0.412164); index must be a positive integer or logical.

José-Luis on 13 Dec 2012

Please see the comment to my original answer.

Jonathan Sullivan

Contact us