我有两个这样的数组
x = [[1.5, 2.5], [3.5, 4.5]]
两个内部数组的长度始终相等。
我想成对应用过滤器。上例中的对为[1.5, 3.5]
和[2.5, 4.5]
。如果两个元素都大于临界值(例如2),则过滤条件应选择一对。结果应再次为原始形式,即
result = [[2.5],[4.5]]
另一个例子是
x = [[1.5, 2.5, 3.5], [4.5, 5.5, 6.5]]
-> result = [[2.5, 3.5], [5.5, 6.5]]
。
我该如何实现?
答案 0 :(得分:1)
猜测您的精确过滤标准,一种选择是
julia> using SplitApplyCombine
julia> x = [[1.5, 2.5, 3.5], [4.5, 5.5, 6.5]];
julia> invert(filter(y->y[1]>2&&y[2]>2, invert(x)))
2-element Array{Array{Float64,1},1}:
[2.5, 3.5]
[5.5, 6.5]
不是方法invert
是在外部包SplitApplyCombine.jl中定义的,您必须首先添加(] add SplitApplyCombine
)。
但是,直接的for循环实现也可以工作,并且可能更快。
答案 1 :(得分:0)
保留除第一个元素之外的任何元素
julia> x = [[1.5, 2.5, 3.5], [4.5, 5.5, 6.5]];
julia> (x->x[2:end]).(x)
2-element Array{Array{Float64,1},1}:
[2.5, 3.5]
[5.5, 6.5]
答案 2 :(得分:-1)
让我弄清楚。如我所料,我要从具有临界值的2元素数组{Array {Float64,1},1}中进行过滤。例如,对于x [1],我的临界值为2。我的输入是 x = [[1.5,2.5,3.5,0.5],[3,4,5,6]]。 我的预期结果应该是 x = [[2.5,3.5],[4,5]]。 你们清楚了吗?