Ruby - 确定值是否位于矩阵列中

时间:2012-03-14 23:31:37

标签: ruby arrays matrix

我有一个矩阵和一个数组:

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

array = [11, 13, 14, 18]

有没有办法确定数组中哪些元素位于矩阵每列的顶行和底行之间?感谢。

1 个答案:

答案 0 :(得分:1)

“两者之间”的含义并不十分清楚,但一个简单的理解是:

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