Generating random number from a given sequence.

Hello, I am generating a random sequence of channels one after another based on its availability. The way i'm doing it is like this. It is working fine but i don't like the way i have implemented it. Can you suggest a more efficient method for doing the same thing. Thank you.
idle=0;
ava_channelsabs=find(channelstate_abs(idabs,abs_idbeam,:)==idle);
col_slot1=[];
while length(col_slot1)<length(ava_channelsabs)
rand_slot1=randi(length(ava_channelsabs),1,1);
check=ismember(rand_slot1,col_slot1);
if check==0
rand_channel1=ava_channelsabs(rand_slot1);
col_slot1=[col_slot1,rand_slot1];
end
end

 채택된 답변

Steven Lord
Steven Lord 2016년 7월 25일

0 개 추천

It sounds like you want to perform sampling without replacement. If that's the case take a look at the randperm function.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Random Number Generation에 대해 자세히 알아보기

질문:

2016년 7월 25일

답변:

2016년 7월 25일

Community Treasure Hunt

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

Start Hunting!

Translated by