Generating random number from a given sequence.

1 回表示 (過去 30 日間)
Aftab Ahmed Khan
Aftab Ahmed Khan 2016 年 7 月 25 日
回答済み: Steven Lord 2016 年 7 月 25 日
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 日
It sounds like you want to perform sampling without replacement. If that's the case take a look at the randperm function.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by