mam:W Clojure, co jest skutecznym sposobem, aby obliczyć średnią z wektorami całkowitych
(def data [[1 3 4 7 9] [7 6 3 2 7] [1 9 8 6 2]])
Chcę uśrednić te (pierwiastek mądry, aby uzyskać):
[3 6 5 5 6]
jak chcesz MATLAB:
mean([1 3 4 7 9; 7 6 3 2 7; 1 9 8 6 2])
z Incanter mogę zrobić:
(map #(/ % (count m)) (apply plus data))
Jeśli dane są raczej duże (i mam ich dużo), czy istnieje lepszy sposób na zrobienie tego?
Czy to pomaga wcześniej obliczyć wartość (count m)
?
Czy to wcześniej pomoże defn
z #(/ % (count m))
?
Dzięki @amalloy to działa, ale nie rozumiem, jak '(zastosować mapę (fn ...' działałoby, nie powinno być '(zastosować (map (fn ...'? – Ali
@Ali No , stosujesz funkcję 'map' do sekwencji argumentów: konstruujemy anonimową funkcję, a następnie każdy element sekwencji' data'. 'map' jest skłonny zaakceptować argumenty" extra ", przekazując je do funkcja, na przykład '(mapa + [1 2] [10 20])' ~ = '[(+ 1 10) (+ 2 20)]'. – amalloy