6

我这样做:

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]

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

4

2 回答 2

18

你可以使用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]]
于 2011-04-10T04:01:01.587 回答
2

您可以使用each_with_indexmap

 c = b.each_with_index.map { |n,i| n - a[i] }
 # => [1, 1, 1, 1]
于 2011-04-10T04:05:29.900 回答