好吧,我无法获得向量packet_send的整数索引。 (基本上我生成1到100之间的随机索引)。当我看到我使用的“长度”类作为索引时它是double,这意味着rand函数返回double值,所以我厌倦了通过将其转换为int16将其转换为整数。但是我仍然没有得到所需的长度,因此我可以将它用作向量的索引。
for time_slot = 1:1:number_of_slots
p = randint(1)*prob;
lengths =int16( round(rand(1) * max_length)); % lengths value between 1 to 100.. as per the range decided
if (p == prob)
packet_send(lengths) = packet_send(lengths) + 1;
total_number_of_packets = total_number_of_packets + 1 ;
end
end
答案 0 :(得分:2)
您可以使用randi
创建随机整数。对于您的代码示例,这可以是:
lengths = randi(max_length, 1);
您还可以在循环开始之前绘制所有随机索引:
allLengths = randi(max_length, number_of_slots);
<强>〜编辑〜强>
如果您的matlab版本中没有randi
,您可以使用:
lengths = floor(rand(1)*max_length)+1;