У меня есть матрица и массив:
m = Matrix[ [1, 2, 3], [11, 15, 20] ] array = [11, 13, 14, 18]
Есть ли способ определить, какие элементы из массива лежат между верхней и нижней строками каждого столбца матрицы?Спасибо.
Не совсем понятно, что вы подразумеваете под «между», но простое понимание таково:
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