Generar un número aleatorio con un matlab de probabilidad dado

Quiero generar un número aleatorio con una probabilidad dada, pero no estoy seguro de cómo:

Necesito un numero entre 1 y 3

num = ceil(rand*3);

pero necesito diferentes valores para tener diferentes probabilidades de generar, por ejemplo.

0.5 chance of 1
0.1 chance of 2
0.4 chance of 3

Estoy seguro de que esto es sencillo pero no puedo pensar en cómo hacerlo.