|
setup diary |
va.size.times{|i| sum[i]=va[i]+vb[i]}size.timesの代わりにeach_indexなどを使っても同じである。次に考えたのが、片方の値をmethodを使って取り出す方法である。
va.each_with_index{|v,i| sum[i]=v+vb[i]}しかし、かえって長くなっているので、あまり意味が無いように思われる。やはり、methodをどう使うかが、rubyの醍醐味なので、次のようなものも考えてみた。
sum=va.zip(vb).map{|a| a.inject(:+)}これは、zipでそれぞれの成分を配列にして、それをinjectで足してしまう方法である。でも、長さはあまり変わらない。素直にMatrixのVectorをつかえということかな。