Gere um número aleatório com uma dada probabilidade matlab

Eu quero gerar um número aleatório com uma determinada probabilidade, mas não sei como:

Eu preciso de um número entre 1 e 3

num = ceil(rand*3);

mas eu preciso de valores diferentes para ter diferentes probabilidades de gerar, por exemplo.

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

Tenho certeza de que isso é simples, mas não consigo pensar em como fazê-lo.

questionAnswers(4)

yourAnswerToTheQuestion