乘法逐行

时间:2015-11-30 11:23:31

标签: bash awk

我知道如何在列中乘以数字,但我无法处理行中的乘法。我想计算第一行中每个数字的第三个幂,然后将它乘以第二行中的数字和常量变量。总有两行,例如:

输入:常量:x

a c ... ...
b d ... ...

我想有这样的输出:

(a^3)*b*x (c^3)*d*x ... ...

输入一些实数:常数:0.30和四列。

1.00    2.00    4.00    7.00    
1.10    1.05    0.30    0.10

输出:

0.33    2.52    5.76    10.29   

希望有人能提供帮助。谢谢。

3 个答案:

答案 0 :(得分:1)

gawk的

SaveToTextStream

答案 1 :(得分:1)

也许这会更直观

$ tr -s ' ' '\n' < file | pr -2t | awk -v x=0.3 '{printf "%.2f ", $1^3*$2*x} END{print ""}'
0.33 2.52 5.76 10.29

转置数据文件,使相关字段位于同一行,计算,转置。

答案 2 :(得分:0)

我建议你阅读python中的列表。请参考here。你的问题是你需要弄脏代码。开始练习更多编程问题。 :)

input_vals= [[1,2,3,4,5],[1,3,5,7,9]] # Can be of any form, I used 2-D Array
a = input_vals[0]
b = input_vals[1]
x = 0.5 # Constant Value
# Now all you need is to read value and do your operation
for i in xrange(len(a)):
    print (a[i]**3)*b[i]*x
# Or here is one liner for your question     
print [(a[i]**3)*b[i]*0.5 for i in range(len(a))]