2012-03-14 11 views
0

内にあるかどうかを決定する:ルビー - 値Iがマトリクスアレイ有しマトリクス列

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

array = [11, 13, 14, 18] 

を各列の上部と下部の行の間のアレイ位置からの要素を決定する方法はあります行列の?ありがとう。

+0

あなたの問題文は少し不明です。期待した結果は何ですか? – dbenhur

答えて

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 
+0

ありがとう、二番目のトリックでした。私は、一番上の行が上限で、一番下の行が下限であることを意味しました。このスレッドを表示する人は、 'cv [-1]'の後ろに閉じ括弧を追加してください。 – EHNole

関連する問題