for loop inside for loop

So I have this vector of number of packets start from 1:1e3 . each single packet have random number of datagrams and each of this datagrams have a size following geometeric distribution. The idea is to find the total size of all datagrams within each packet and for all the packets (from 1:1e3). So I did this code that have 1e3 packets and each packet have a random number of datagrams. but, once I tried to find the total size of all datagrams for all the packets, it only gives me the first total size of packet number 1 then stop. here is my code:
xi=0.91; sigma=74.1; mu=81.5; nof_packets=1000;
p=25;
mean=1/p;
for q=1:nof_packets
n_d(q)=geornd(mean);
for m=1:n_d
datagram_size(m)=gprnd(xi,sigma,mu);
counter=sum(datagram_size);
end
end

5 个评论

Does it error or just end? It looks more likely that it only gives you the size of the last packet, overwriting the earlier ones.
for q=1:nof_packets
n_d(q)=geornd(mean);
for m=1:n_d
datagram_size(m)=gprnd(xi,sigma,mu);
end
counter(q)=sum(datagram_size);
end
total_packets = sum(counter);
(there's probably a cleaner way that doesn't involve loops, but I'm not clear on the structure of your data)
Also, I wouldn't use "mean" as a variable name, since it is an important built-in function
Hello Sindar,
it just end. and it gives only the first packet size.
Does my code work for you?
it works perfect. Thank you

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by