АО
Size: a a a
АО
АО
let блок завернуть.RS

for i = -2:2,
j = -3:3
println("$(i), $(j)")
end
VM
`RS
function f1(A, a, b, c)
A[.!(
(-a .< A[:, 1] .< a) .|
(-b .< A[:, 2] .< b) .|
(-c .< A[:, 3] .< c)
), :]
end
function f2(A, a, b, c)
n = size(A)[1]
filt = BitArray(undef, n)
for i in 1:n
filt[i] = !((-a < A[i, 1] < a) | (-b < A[i, 2] < b) | (-c < A[i, 3] < c))
end
A[filt, :]
end
n = 100
A = [rand(1:1000, n) rand(1:1000, n) rand(1:1000, n)]
a, b, c = 10, 20, 30
# Sanity check
all(f2(A, a, b, c) .== f1(A, a, b, c)) # true
@btime f1($A, $a, $b, $c) # 6.206 μs (27 allocations: 31.03 KiB)
@btime f2($A, $a, $b, $c) # 1.500 μs (6 allocations: 2.53 KiB)
A = [rand(1:1000, n) rand(1:1000, n) rand(1:1000, n)]
# это то же, что и:
rand(1:1000, n, 3)
KT
V = [ ]
n = 1
for i = -n:n
for j= -n:n
for k = -n:n
push!(V, [I j k])
end
end
end
print(V)
KT
KT
push! делать не очень хорошоKT
RS
RS
v = [ [i, j, k] for i = -n:n, j = -n:n, k = -n:n ]
АО
push! делать не очень хорошо sizehint.KT
АО
A = [rand(1:1000, n) rand(1:1000, n) rand(1:1000, n)]
# это то же, что и:
rand(1:1000, n, 3)
RS
function f3(A, a, b, c)
n = size(A)[1]
B = similar(A)
j = 1
for i in 1:n
if !((-a < A[i, 1] < a) | (-b < A[i, 2] < b) | (-c < A[i, 3] < c))
B[j, 1] = A[i, 1]
B[j, 2] = A[i, 2]
B[j, 3] = A[i, 3]
j += 1
end
end
@views B[1:j - 1, :]
end
@btime f3($A, $a, $b, $c) # 592.569 ns (2 allocations: 2.56 KiB)
B[j] = A[i]
RS
RS
v = [ [i, j, k] for i = -n:n, j = -n:n, k = -n:n ]
for i = -2:2,
j = -3:3
println("$(i), $(j)")
end
VM
for i = -2:2,
j = -3:3
println("$(i), $(j)")
end
АО
for i = -2:2,
j = -3:3
println("$(i), $(j)")
end
break из вложенных циклов.