Ruby 2.7.0 リファレンスマニュアル > ライブラリ一覧 > matrixライブラリ > Vectorクラス > collect2

instance method Vector#collect2

collect2(v) {|x, y| ... } -> Array[permalink][rdoc]
collect2(v) -> Enumerator

ベクトルの各要素と引数 v の要素との組に対してブロックを評価し、その結果を要素として持つ配列を返します。

ベクトルの各要素と、それに対応するインデックスを持つ引数 v (ベクトル or 配列)の要素との組に対して (2引数の) ブロックを評価し、その結果を要素として持つ配列を返します。

ブロックを省略した場合は Enumerator を返します。

[PARAM] v:
ブロック内で評価される(ベクトル or 配列)
[EXCEPTION] ExceptionForMatrix::ErrDimensionMismatch:
自分自身と引数のベクトルの要素の数(次元)が異なっていたときに発生します。

[SEE_ALSO] Vector#map2

次の例は、2つのベクトルの要素毎の積を要素とする配列を生成します。



require 'matrix'

v1 = Vector[2, 3, 5]
v2 = Vector[7, 9, 11]
a = Array[7, 9, 11]

z = v1.collect2(v2){ |x, y| x * y }
p z # => [14, 27, 55]

z = v1.collect2(a) { |x, y| x * y } # Array でも OK
p z # => [14, 27, 55]