我有许多(nTotal)个文件,每个文件都有一列长度为L的浮点数,我想在所有这些文件的第 i_th 行和最后添加条目。计算其平均值和标准差。我首先阅读每个文件。然后我尝试将此数组添加到一个数组中,这给了我一个语法错误:(standard_in) 2: syntax error。我希望suma[i]现在包含所有文件的第 i_th 行上所有条目的总和。然后我找到了我按照建议为循环更改的平均 编辑。
for (( n= 1 ; n < $nTotal; n++ ))
do
IFS=$'\n'
arr1=($(./a.out filename | sed 's/:.*//'))
for (( i= 1 ; i < $L; i++ ))
do
sum[i]=`echo "${sum[i]} - ${arr1[i]}" | bc`
done
done
for (( i= 1 ; i < $L; i++ ))
do
ya=$(echo -1*${sum[i]} | bc)
aveSum=$(echo $ya/$nTotal | bc -l)
done
编辑: ./a.out 生成具有一列浮点数的文件。
不过,为了找到标准偏差,我再次读取数据文件并将它们存储在数组中(我确信这不是最聪明的方法,但我想不出其他任何方法。)。我也无法使用以下方法找到标准偏差:
for (( i= 1 ; i < $L; i++ ))
do
ya=$(echo -1*${sum[i]} | bc)
ta=$(echo $ya/$nTotal | bc -l)
tempval=`echo "${arr1[i]} - $ta * ${arr1[i]} - $ta" | bc`
val[i]=`echo "${val[i]} - $tempval" | bc`
done
在这里,我的val[i]元素为零,我不知道出了什么问题。如果您能指导我解决这个问题,我将不胜感激。