We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 7df5c1d commit 33b2a7aCopy full SHA for 33b2a7a
src/RecursiveArrayTools.jl
@@ -4,15 +4,14 @@ module RecursiveArrayTools
4
5
using Iterators
6
7
- import Base: mean
8
-
9
include("utils.jl")
10
include("vector_of_array.jl")
11
include("array_partition.jl")
12
13
export VectorOfArray, AbstractVectorOfArray, vecarr_to_arr
14
15
- export recursivecopy!, vecvecapply, copyat_or_push!, vecvec_to_mat, recursive_one,mean
+ export recursivecopy!, vecvecapply, copyat_or_push!, vecvec_to_mat, recursive_one,
+ recursive_mean
16
17
export ArrayPartition
18
src/utils.jl
@@ -66,24 +66,25 @@ end
66
recursive_one(a) = recursive_one(a[1])
67
recursive_one{T<:Number}(a::T) = one(a)
68
69
-function mean{T<:AbstractArray}(vecvec::Vector{T})
+recursive_mean(x) = mean(x)
70
+function recursive_mean{T<:AbstractArray}(vecvec::Vector{T})
71
out = zeros(vecvec[1])
72
for i in eachindex(vecvec)
73
out+= vecvec[i]
74
end
75
out/length(vecvec)
76
77
-function mean{T<:AbstractArray}(matarr::Matrix{T},region=0)
78
+function recursive_mean{T<:AbstractArray}(matarr::Matrix{T},region=0)
79
if region == 0
- return mean(vec(matarr))
80
+ return recursive_mean(vec(matarr))
81
elseif region == 1
82
out = [zeros(matarr[1,i]) for i in 1:size(matarr,2)]
83
for j in 1:size(matarr,2), i in 1:size(matarr,1)
84
out[j] += matarr[i,j]
85
86
return out/size(matarr,1)
87
elseif region == 2
- return mean(matarr',1)
88
+ return recursive_mean(matarr',1)
89
90
test/utils_test.jl
@@ -21,17 +21,17 @@ data = vecvec_to_mat(randomized)
21
22
## Test means
23
A = [[1 2; 3 4],[1 3;4 6],[5 6;7 8]]
24
-@test mean(A) ≈ [2.33333333 3.666666666
+@test recursive_mean(A) ≈ [2.33333333 3.666666666
25
4.6666666666 6.0]
26
B = Matrix{Matrix{Int64}}(2,3)
27
B[1,:] = [[1 2; 3 4],[1 3;4 6],[5 6;7 8]]
28
B[2,:] = [[1 2; 3 4],[1 5;4 3],[5 8;2 1]]
29
30
ans = [[1 2; 3 4],[1 4; 4 4.5],[5 7; 4.5 4.5]]
31
-@test mean(B,1)[1] ≈ ans[1]
32
-@test mean(B,1)[2] ≈ ans[2]
33
-@test mean(B,1)[3] ≈ ans[3]
+@test recursive_mean(B,1)[1] ≈ ans[1]
+@test recursive_mean(B,1)[2] ≈ ans[2]
+@test recursive_mean(B,1)[3] ≈ ans[3]
34
35
ans = [[2.333333333333 4.666666666666; 3.6666666666666 6.0], [2.3333333 3.0; 5.0 2.6666666]]
36
-@test mean(B,2)[1] ≈ ans[1]
37
-@test mean(B,2)[2] ≈ ans[2]
+@test recursive_mean(B,2)[1] ≈ ans[1]
+@test recursive_mean(B,2)[2] ≈ ans[2]
0 commit comments