Ruby - определить, находится ли значение в столбце матрицы - PullRequest
0 голосов
/ 15 марта 2012

У меня есть матрица и массив:

m = Matrix[
 [1, 2, 3],
 [11, 15, 20]
]

array = [11, 13, 14, 18]

Есть ли способ определить, какие элементы из массива лежат между верхней и нижней строками каждого столбца матрицы?Спасибо.

1 Ответ

1 голос
/ 15 марта 2012

Не совсем понятно, что вы подразумеваете под «между», но простое понимание таково:

def filter_array_between_first_and_last_rows_of_matrix(array,m)
  lower = m.row_vectors.first.max
  upper = m.row_vectors.last.min
  array.select{|e| lower < e && e < upper}
end

вот другое толкование:

def filter_array_between_first_and_last_rows_of_matrix(array,m)
  bounds_pairs = m.column_vectors.map { |cv| [cv.first, cv[-1]] }
  array.select {|e| bounds_pairs.any? { |lo,hi| lo < e && e < hi } }
end
...