我有以下格式的csv数据
1,1.234
1,1.35
1,1.194
2,1.673
2,1.674
2,1.573
我想使用均值和标准差在gnuplot中为以下数据绘制错误列 仅使用gpt脚本。我使用bash脚本绘制了这个图,该脚本计算另一个临时csv文件的平均值和标准偏差并绘制错误栏。
修改
脚本
这是我使用的bash脚本
#! /bin/bash
iteration=1500
rerun=3
mean=0
sum=0
i=0
j=1
count=1
while read -ra f
do
if [ $i -eq $rerun ];
then
i=0
mean=$(echo "scale=5; $mean/$rerun"|bc)
std=$(echo "scale=5; sqrt($sum/$rerun - $mean*$mean)"|bc)
echo $j,$mean,$std >>temp.csv
mean=0
sum=0
j=$(($j+1))
fi
f=($(echo $f | tr ',' ' '))
mean=$( echo "scale=5; ${f[1]}+$mean" | bc)
sum=`echo "scale=5; ${f[1]}*${f[1]}+$sum"| bc`
i=$(($i+1))
done < input.csv
mean=$(echo "scale=5; $mean/$rerun"|bc)
std=$(echo "scale=5; sqrt($sum/$rerun - $mean*$mean)"|bc)
echo $j,$mean,$std >>temp.csv
输出 这不是实际输出,但是这个和实际输出的格式是相同的
number,mean,std-deviation
1,1.267,0.034
2,1.567,0.012
.....
.....1500 lines