how to create a random integernumbers with conditions?

조회 수: 1(최근 30일)
SM
SM 2020년 7월 16일
댓글: SM 2020년 7월 16일
I just want to create an array at random which size will be 1 by sum([4 3 3]). The array contains 1 at 4 times, 2 at 3 times and 3 at 3 times. The result will be
A=[1 2 1 3 2 3 1 1 2 3], ie, random.
How can I generate it in the smart way?

채택된 답변

madhan ravi
madhan ravi 2020년 7월 16일
ix = [4, 3, 3];
A = repelem(1:3, ix);
A(randperm(numel(A)))
  댓글 수: 1
SM
SM 2020년 7월 16일
Thank You, Ravi. It is perfectly alright for my problem.

댓글을 달려면 로그인하십시오.

추가 답변(1개)

David Hill
David Hill 2020년 7월 16일
A=[4 3 3];
a=[];
for k=1:length(A)
a=[a,repmat(k,1,A(k))];
end
for k=1:5
a=a(randperm(length(a)));%you don't necessary have to do this loop, you could do it just once
end
  댓글 수: 1
SM
SM 2020년 7월 16일
Thank you. It is also suitable for my problem but i try to avoid using loop.

댓글을 달려면 로그인하십시오.

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by