Gerar números aleatoriamente a partir de um conjunto?

No MATLAB, eu tenho um conjunto deP números. Gostaria de gerar uma matriz aleatória de tamanhoN deste conjunto.

Por uma questão de exemplo, digamos que eu tenho o conjunto{1, 4}. Digamos que eu gostaria de gerar uma matriz de tamanho5 (por exemplo.,[1 1 4 1 4])

O que fiz foi o seguinte: gerei a seguinte matriz usandorandi.

N = 5;
v = randi([1 4],[1 N]);

O problema é que eu tenho uma matriz aleatória que contém valores em1:4 e não em{1, 4}. Eu posso simplesmente fazer isso, mas preciso de uma maneira melhor.

for i = 1:length(v)
    if v(i) ~= 1 || v(i) ~= 4
       v(i) = 1; % or v(i) = 4
    end
end

Acho que estou perdendo uma dica simples aqui.

questionAnswers(2)

yourAnswerToTheQuestion