首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制图形的NS2 AWK脚本

绘制图形的NS2 AWK脚本
EN

Stack Overflow用户
提问于 2014-07-20 09:31:11
回答 1查看 6K关注 0票数 0

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

现在,下面的代码直接将我引向计算的答案。

例如:

代码语言:javascript
复制
**GeneratedPackets = 2438
ReceivedPackets = 2386
Packet Delivery Ratio = 97.8671
Total Dropped Packets = 9
Average End-to-End Delay = 31.013 ms**

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

1个x1 y1

2个x2 y2

3 x3 y3

我尝试过类似这样命令的方法: awk -f scriptname.awk tracefilename.tr > graph.xgr

然而,它只显示了上面的计算。

代码语言:javascript
复制
    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";
}
EN

回答 1

Stack Overflow用户

发布于 2016-03-01 03:20:47

首先,你会遇到一个问题,code......it会给出一个错误,最有可能的错误是,在0.....fix除法之前放一个if(count)。其次,使用for循环将其打印为矩阵格式

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24846516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档