在ns2_new中用tcl脚本编写过程平均值

在ns2_new中用tcl脚本编写过程平均值,tcl,proc,ns2,Tcl,Proc,Ns2,我在ns2软件中编写了一个场景,其中有5个固定节点和1个移动接收器。 移动接收器应该收集节点的信息。 我想计算平均值(能量水平、节点数量和节点上的流量数据),并将其存储在移动接收器中。 我编写的my代码没有任何错误,但不会打印出来。 我的代码和跟踪文件在附件中 我必须用tcl脚本代码中的proc计算这个平均值,而不是用awk代码。请帮助我 proc create_common_app{destination_id displaying_type displaying_interval ener

我在ns2软件中编写了一个场景,其中有5个固定节点和1个移动接收器。 移动接收器应该收集节点的信息。 我想计算平均值(能量水平、节点数量和节点上的流量数据),并将其存储在移动接收器中。 我编写的my代码没有任何错误,但不会打印出来。 我的代码和跟踪文件在附件中 我必须用tcl脚本代码中的proc计算这个平均值,而不是用awk代码。请帮助我

proc create_common_app{destination_id displaying_type displaying_interval energy_level}{
全局val
#放置“正在执行创建\u公用\u应用程序\n”
如果{$val(commonApp)=“Application/SensorBaseApp/CommonNodeApp”}
{
设置应用程序[新建$val(commonApp)]
$app\设置目的地\标识\目的地\标识
}
$app_uuu设置传播类型\uuu$dispositing_u类型
$app_uuu设置传播时间间隔\uuu$distributing_uinterval
$app_uu设置能量等级u$energy_u等级
返回$app_
}
proc create_mobile_sink_app{source_id displaying_type displaying_interval energy_level out_network}{
全局val
设置应用程序[新$val(sinkApp)]
$app\uuuu设置源\u id\uu$source\u id
$app_uuu设置传播类型\uuu$dispositing_u类型
$app_uuu设置传播时间间隔\uuu$distributing_uinterval
$app_uu设置能量等级u$energy_u等级
$app_uu设置在网络外部\uu$网络外部
#$app_uuu设置平均值\uuu$avg
返回$app_
}
#########################################################################
#我
####################################################################
过程平均值{能量水平}{
设置avgen 0
对于{set i 0}{$i<5}{incr i}{
设置$avgen[expr$energy_level(i)+$avgen]
}
设置$avgen[expr$avgen/$nn]
返回$avgen
设置xl[列表$avgen$nn$U间隔]
}
proc算术平均值{$xl}{
设置长度[L长度$xl]
如果{$length==0}{
返回0.0
}
集合和[::tcl::mathop::+{*}$xl]
返回[expr{double($sum)/$length}]
set avgt[expr{double($sum)/$length}]
放入“平均值为$avgt”
}
#####################################################################
像这样打电话

array set energy_level {0 1.0 1 1.1 2 1.2 3 1.3 4 1.4 5 1.5}
puts "average is: [avg energy_level 6 "?"]"         ;# average is: 1.25
另外,在算术平均值过程的声明中不要使用
$

proc ArithmeticMean { xl } {
array set energy_level {0 1.0 1 1.1 2 1.2 3 1.3 4 1.4 5 1.5}
puts "average is: [avg energy_level 6 "?"]"         ;# average is: 1.25
proc ArithmeticMean { xl } {