我有一个矩阵和一个数组:
m = Matrix[
[1, 2, 3],
[11, 15, 20]
]
array = [11, 13, 14, 18]
有没有办法确定数组中哪些元素位于矩阵每列的顶行和底行之间?感谢。
答案 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