我有一个文件,其中包含以下格式的数据行:
a11 a12 a13 a14 a15
a21 a22 a23 a24 a25
a31 a32 a33 a34 a35
a41 a42 a43 a44 a45
.
.
.
我需要的是在对它执行一些算术后,将这些数据保存在一个具有以下格式的新文件中:
a11
a12*x1 a13/y1 z1*a15+d1
a21
a22*x2 a23/y2 z2*a25+d2
a31
a32*x3 a33/y3 z3*a35+d3
.
.
.
.
所有xi,yi,zi和di都是浮点数。这些数字存储在具有以下格式的第二个文件中:
x1 y1 z1 d1
x2 y2 z2 d2
x3 y3 z3 d3
.
.
.
我真的很感激,如果你能指导一下csh或bash片段,了解如何做到这一点。
干杯
答案 0 :(得分:2)
脚本(我称之为matmath
):
#!/usr/bin/awk -f
BEGIN {
factors = ARGV[1]
ARGC--
}
{
print $1
getline line < factors
split(line, f)
print $2 * f[1], $3 / f[2], f[3] * $5 + f[4]
}
数据文件:
矩阵
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
因素:
1.1 1.2 1.3 1.4 1.5
2.1 2.2 2.3 2.4 2.5
3.1 3.2 3.3 3.4 3.5
4.1 4.2 4.3 4.4 4.5
示例运行:
$ chmod u+x matmath # run once to set the script to be executable
$ ./matmath factors matrix
1.1
1.32 1.08333 3.35
2.1
4.62 1.04545 8.15
3.1
9.92 1.03125 14.95
4.1
17.22 1.02381 23.75
答案 1 :(得分:1)