Генерировать числа случайным образом из набора?

В MATLAB у меня есть наборP номера. Я хотел бы создать случайный массив размераN из этого набора.

Для примера, скажем, у меня есть набор{1, 4}, Допустим, я хотел бы создать массив размера5 (например.,[1 1 4 1 4]).

Я сделал следующее: я сгенерировал следующий массив, используяrandi.

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

Проблема в том, что я получил случайный массив, который содержит значения в1:4 и не в{1, 4}, Я могу просто сделать это, но мне нужен лучший способ.

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

Я думаю, что мне здесь не хватает простого намека.

Ответы на вопрос(2)

Ваш ответ на вопрос