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_indexとを使用できますmap

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