MATLAB: I am trying to randomly disperse different numbers in MATLAB array:

MATLABrandom

I am trying to randomly disperse different numbers in MATLAB array:
I have two 3's, four 2's and I want to randomly populate ones vector (size 10,1).
End Result look something like this:
A = [1; 3; 1; 2; 3; 2; 2; 1; 1; 2; 1; 1]
Then I want to fix the values in A but add more random elements but I can only replace with higher numbers:
for example, to the matrix above I will randomly add two more 2's and two more 3's giving something like this
A2 =[ 3; 3; 2; 2; 3; 2; 2; 2; 1; 2; 1; 3]

Best Answer

V = ones(1,10)
V(1:4) = 2
V(5:6) = 3
V = V(randperm(numel(V))) % randomize the order initially
% change four 1's into two 2's and two 3's
idx = find(V==1) % where are the 1's
idx = idx(randperm(numel(idx)))
V(idx(1:4)) = [2 2 3 3]