Ruby-使用另一个数组从一个数组中添加/减去元素

时间:2011-04-10 03:59:12

标签: ruby arrays matrix addition subtraction

我这样做:

a = [1,2,3,4]  
b = [2,3,4,5]  
c = b - a  
put c 

我明白了 回答 - > [1]
我想要这个答案 - > [1,1,1,1](如矩阵加法/减法)

我试过了:

c.each {|e| c[e] = b[e] - a[e]}  

但我得到了这个答案:[1,0,0,0]

有人能给我一个正确的方法吗?非常感谢!

2 个答案:

答案 0 :(得分:16)

您可以使用zip

a.zip(b).map { |x, y| y - x }
# => [1, 1, 1, 1]

还有一个Matrix类:

require "matrix"

a = Matrix[[1, 2, 3, 4]]
b = Matrix[[2, 3, 4, 5]]
c = b - a
# => Matrix[[1, 1, 1, 1]]

答案 1 :(得分:2)

您可以使用each_with_indexmap

 c = b.each_with_index.map { |n,i| n - a[i] }
 # => [1, 1, 1, 1]