嗨我正在尝试返回数组部分的平均值,当数组设置为
时$multi = New-Object 'object[,]' $nucount,($readings + 2 )
and contains "1,4,2,6,3,4,5,nameofitem, cost of item"
我想获得前7个元素的平均值,我知道它们总是第7个元素,并且始终是数字。在上面的例子中,包含数字的元素数量将保存在一个名为$ readings的变量中。所以我要做的总和是将数组中的元素加到$ readings值。然后按$读数设备。
我知道整个数组的方法是这样的
$Avg = ($array | Measure-Object -Average);
$Avg.Average;
或简单循环并计算平均购买添加和分配。
但有没有简单的方法来做到这一点。我打算用...运算符
$ multi [2,0 .. $读数],但我收到错误
无法转换" System.Object []" type" System.Object []"输入" System.Int32"。
如果它可以提供一个简短的代码来替换
,那么任何帮助都会很棒for (x=1 ; $x -eq $readings ; $X++)
{
$sum = $sum + $multi[2,$x]
{
$avg= $sum/$readings
答案 0 :(得分:4)
你正确的方式:
$readings=7
$array=1,4,2,6,3,4,5,"nameofitem", "cost of item"
$Avg = ($array[0..($readings - 1)] | Measure-Object -Average);
$Avg.Average;
请注意,数组基于零...
答案 1 :(得分:2)
也许它是这样的:
0..$readings | % { $sum += $multi[$_] }
如果不是:
0..[int]$readings | % { $sum += $multi[$_] }
首先你必须启动$ sum
$sum = 0
0..$readings | % { $sum += $multi[$_] }
$avg = $sum/$readings
这是另一个可行的例子:
$arr = 1..50
$readings = 15
$arr[2..$readings]
关于Eldo.Ob
答案 2 :(得分:0)
试试这个:
$avg = (0..7 |% { $multi[2,$_] } | Measure-Object -Average)
答案 3 :(得分:0)
正如您在评论中指出的那样,数组确实是1维的,解决方案很简单:
$multi | select -First 7 | Measure-Object -Average