在matlab中用作索引的随机数

时间:2013-09-20 06:05:31

标签: matlab random indexing numbers

好吧,我无法获得向量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

1 个答案:

答案 0 :(得分:2)

您可以使用randi创建随机整数。对于您的代码示例,这可以是:

lengths = randi(max_length, 1);

您还可以在循环开始之前绘制所有随机索引:

allLengths = randi(max_length, number_of_slots);

<强>〜编辑〜
如果您的matlab版本中没有randi,您可以使用:

lengths = floor(rand(1)*max_length)+1;