我这样做:
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_index
和map
。
c = b.each_with_index.map { |n,i| n - a[i] }
# => [1, 1, 1, 1]