(def data [[1 3 4 7 9] [7 6 3 2 7] [1 9 8 6 2]])
我要平均這些(元素方面獲得):
[3 6 5 5 6]
像你這樣在MATLAB:
mean([1 3 4 7 9; 7 6 3 2 7; 1 9 8 6 2])
隨着咒術我可以這樣做:
(map #(/ % (count m)) (apply plus data))
如果數據相當大(我有很多)有沒有更好的方法來做到這一點?
事先計算(count m)
有幫助嗎?
事先對defn
的#(/ % (count m))
有幫助嗎?
感謝@amalloy它的工作原理,但我不明白'(應用地圖(Fn ...'會起作用,不應該是'(apply(map(fn ...'? – Ali
@Ali No ,你將'map'函數應用到一系列參數中:一個我們構造的匿名函數,然後'data'序列的每個元素'map'願意接受「額外」參數,將它們傳遞給例如,'(map + [1 2] [10 20])'〜='[(+ 1 10)(+ 2 20)]'。 – amalloy