gpt4 book ai didi

bash - 如何用AWK计算梯度

转载 作者:行者123 更新时间:2023-11-29 09:47:48 24 4
gpt4 key购买 nike

我有一个包含两列的文件,例如:

A B
1 2
10 20
100 200
.
.
.

我想通过 awk 计算梯度(或斜率)dB/dA。这意味着第三列应该是 B 列中每个相邻行之间的差异除以 A 列中每个相应相邻行之间的差异。上述日期的结果应该是:

A B dB/dA
1 2 (20-2)/(10-1)=2
10 20 (200-20)/(100-10)=2
100 200
.
.
.

我该怎么做?

最佳答案

根据你的文件,你可以这样做:

$cat file
A B
1 2
10 20
100 200


awk 'BEGIN{OFS="\t"}NR==1{print $1,$2,"dA/dB"}NR>2{print a,b,($2-b)/($1-a)}{a=$1;b=$2}' file
A B dA/dB
1 2 2
10 20 2
100 200 2

与:

  • BEGIN{OFS="\t"} 将输出字段分隔符设置为制表符
  • NR==1{print $1,$2,"dA/dB"} 复制标题并添加 grad 列
  • NR>2 从第二行(值)开始跳过标题和第一行
  • {a=$1;b=$2} 为下一行保存 ab 中的值。这部分从第一行开始
  • {print a,b,($2-b)/($1-a)} 打印上一行和这行与上一行之间的渐变

希望对你有帮助

关于bash - 如何用AWK计算梯度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25114633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com