NS2 AWK脚本绘制图形



如何修改代码,使其按行和列列出所有值?

现在,下面的代码直接引导我找到了计算的答案。

例如

,

**GeneratedPackets = 2438
ReceivedPackets = 2386
Packet Delivery Ratio = 97.8671
Total Dropped Packets = 9
Average End-to-End Delay = 31.013 ms**

但我想要这样的东西,以便绘制我的图形:

1 x1 y1

2x2 y2

3 * y3

我试过这样的方法:Awk -f [scriptname]。awk [tracefilename]。Tr> graph.xgr

却只显示了上面的计算。

    BEGIN {
seqno = -1; 
droppedPackets = 0;
receivedPackets = 0;
count = 0;
}
{
#packet delivery ratio
if($4 == "AGT" && $1 == "s" && seqno < $6) {
seqno = $6;
} else if(($4 == "AGT") && ($1 == "r")) {
receivedPackets++;
} else if ($1 == "D" && $7 == "tcp" && $8 > 512){
droppedPackets++; 
}
#end-to-end delay
if($4 == "AGT" && $1 == "s") {
start_time[$6] = $2;
} else if(($7 == "tcp") && ($1 == "r")) {
end_time[$6] = $2;
} else if($1 == "D" && $7 == "tcp") {
end_time[$6] = -1;
}
}  
END { 
for(i=0; i<=seqno; i++) {
if(end_time[i] > 0) {
delay[i] = end_time[i] - start_time[i];
count++;
}
else
{
delay[i] = -1;
}
}
for(i=0; i<count; i++) {
if(delay[i] > 0) {
n_to_n_delay = n_to_n_delay + delay[i];
} 
}
n_to_n_delay = n_to_n_delay/count;
print "n";
print "GeneratedPackets = " seqno+1;
print "ReceivedPackets = " receivedPackets;
print "Packet Delivery Ratio = " receivedPackets/(seqno+1)*100
"%";
print "Total Dropped Packets = " droppedPackets;
print "Average End-to-End Delay = " n_to_n_delay * 1000 " ms";
print "n";
}

首先,您的代码......有问题它会给出一个错误很可能除以0.....通过在与count除之前加上if(count)来修复它。其次,使用for循环以矩阵格式打印

最新更新