【发布时间】:2015-04-30 00:00:46
【问题描述】:
我正在运行一些网络测量,根据这张图片,我现在得到了大量的时间戳: http://i.stack.imgur.com/TNnBf.png
我想获取 Mean、Var 和 CoV 的统计信息,但我遇到的问题是我真的不知道如何读取文本文件,所以我在正确的数组中获得了正确的值。
我看到 Bash 在这方面被认为很差,所以我决定 perl 应该更好。这是我迄今为止的尝试:
#!/usr/bin/perl
#foreach $line
$pkt_number = $1;
$pkt_arrival = $2;
$pkt_size = $6;
$nr_of_pkg = 16;
$linespeed = 100000;
$sum_of_throughput = 0;
$throughput = 0;
$sum_of_throughputsquared = 0;
$mean = 0;
$var = 0;
$co_v = 0;
$duration = $pkt_arrival[0] - $pkt_arrival[15];
for (my $i = 0 ; $nr_of_pkg > $pkt_number[i] ; $i++) {
$throughput[i] = $packet_size[i] / $pkt_arrival[i];
$sum_of_throughput = $sum_of_throughput + $throughput[i];
$sum_of_throughput_squared = $sum_of_throughput_squared + $throughput[i] * $throughput[i];
}
$mean = $sum_of_throughput / $nr_of_pkg;
$var = (($sum_of_throughput * $sum_of_throughput) - $sum_of_throughput_squared);
$co_v = sqrt($var)
【问题讨论】:
-
你有什么问题?
-
如何实现这一点,我已经花了相当长的时间,这就是我到目前为止所得到的。 IE。我需要一些指导。
-
在我理解它之前必须整理你的 Perl 代码是很烦人的。请尝试正确呈现您的代码,尤其是在您寻求帮助时。您还应该为全局标识符保留大写字母,例如包名称。词法标识符只能包含小写字母、十进制数字和下划线
-
抱歉,感谢整理。我坐在 ssh 上并从那里复制它,但我完全同意,我会牢记所有这些!
-
不知道您的数据或围绕此示例的代码是什么样的,以及您希望得到什么样的输出,我们没有机会帮助您。你已经看起来不错
标签: perl statistics measurement