小编use*_*360的帖子

外推 - 以awk为基础

我需要以下帮助:我有一个数据文件(以"\ t"表格分​​隔的列),就像这样 data.dat

    # y1    y2      y3      y4
    17.1685 21.6875 20.2393 26.3158 
Run Code Online (Sandbox Code Playgroud)

对于线性拟合,这些是4个点的x值.四个y值是常数:0, 200, 400, 600.

我可以创建点对的线性拟合(x,y):(x1,y1)=(17.1685,0), (x2,y2)=(21.6875,200), (x3,y3)=(20.2393,400), (x4,y4)=(26.3158,600).

现在我想对其中的三个巴黎进行线性拟合, (x1,y1), (x2,y2), (x3,y3) and (x2,y2), (x3,y3), (x4,y4) and (x1,y1), (x3,y3), (x4,y4) and (x1,y1), (x2,y2), (x4,y4).

如果我有三个线性拟合点,我想知道外推点的x值在这三个拟合点之外的值.

我到目前为止这个awk代码:

#!/usr/bin/awk -f

BEGIN{
  z[1] = 0;
  z[2] = 200;
  z[3] = 400;
  z[4] = 600;
}

{
  split($0,str,"\t");
  n = 0.0;

  for(i=1; i<=NF; i++)
  {
    centr[i] = str[i];
    n += 1.0;
  # printf("%d\t%f\t%.1f\t",i,centr[i],z[i]);
  }
  # print …
Run Code Online (Sandbox Code Playgroud)

linux shell awk

6
推荐指数
1
解决办法
649
查看次数

拆分特定列

我有这种recrods:

1 2 12345
2 4 98231
...
Run Code Online (Sandbox Code Playgroud)

我需要将第三列拆分为子列以获得此值(例如,用单空格分隔):

1 2 1 2 3 4 5
2 4 9 8 2 3 1
Run Code Online (Sandbox Code Playgroud)

任何人都可以在sed,awk等中为我提供一个很好的解决方案吗?谢谢!

编辑:原始第三列的大小可能会按记录变化.

bash shell awk sed

1
推荐指数
1
解决办法
311
查看次数

标签 统计

awk ×2

shell ×2

bash ×1

linux ×1

sed ×1