In MATLAB, I have a set of P
numbers. I would like to generate a random array of size N
from this set.
For the sake of example, let say I have the set {1, 4}
. Let say I would like to generate an array of size 5
(e.g., [1 1 4 1 4]
).
What I did is this: I generated the following array using randi
.
N = 5;
v = randi([1 4],[1 N]);
The problem is that I got a random array which contains values in 1:4
and not in {1, 4}
.
I can simply do this but I need a better way.
for i = 1:length(v)
if v(i) ~= 1 || v(i) ~= 4
v(i) = 1; % or v(i) = 4
end
end
I think I am missing a simple hint here.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…