我正在尝试实现一个UICollectionView内部UIView,但我无法找到如何做到这一点.有关于如何使用大量的教程UICollectionView有UICollectionViewController,但不知道如何实现一个在普通视图.你是怎样做的?
我有一个 MxN 浮点数组 A,我想进行以下操作:对于 A 的每一列,计算小于某个阈值(例如 0.5)的元素数。
Julia 执行此操作的最快方法是用零初始化结果向量,然后按列运行数组 A 并在需要时增加结果向量。例如,使用 for 循环很容易做到这一点
function count(A)
(cols, rows) = size(A)
result = fill(0, cols)
for j in 1:rows
for i in 1:cols
result[i] += A[i,j] <= 0.5
end
end
end
Run Code Online (Sandbox Code Playgroud)
这以与在内存中的布局相同的顺序遍历 A 并且它不会分配不需要的额外空间。但是,我不确定如何使用例如广播运算符 .<=0.5、sum 等来完成此操作。一种方法是
sum(A .<= 0.5, dims=1)
Run Code Online (Sandbox Code Playgroud)
但这分配新内存只是为了执行操作,并且比计数函数慢大约 2-3 倍(我测试了高达 8000x8000 的数组)。是否可以仅使用几行代码(如第二种方法)即可实现计数功能的性能?
我想设置NTA_CONF_PATH = /Users/macbook/nupic-master/nupic/support为环境变量,但使用
export NTA_CONF_PATH=/Users/macbook/nupic-master/nupic/support
Run Code Online (Sandbox Code Playgroud)
只是暂时的,每次我退出终端时,环境变量都会消失,我必须再次输入.我该如何永久化?
(我正在运行约塞米蒂.)
我正在实现一个只有一个非零值的自定义矩阵,无论您执行什么操作,这都是矩阵中唯一一个可以为非零值的单元格。我称它为SVMatrix(单值矩阵)。我到目前为止的代码是
struct SVMatrix{T} <: Base.AbstractMatrix{T}
value::T
index::Tuple{Int,Int}
size::Tuple{Int,Int}
end
function Base.broadcast(+, A::SVMatrix, B::AbstractArray)
SVMatrix(A.value+B[A.index...], A.index, A.size)
end
function Base.getindex(A::SVMatrix{T}, i::Int) where {T}
if i == A.index[1] + A.index[2]*A.size[1]
A.value
else
0
end
end
function Base.getindex(A::SVMatrix{T}, i::Vararg{Int,2}) where {T}
if i == A.index
return A.value
else
0
end
end
function Base.size(A::SVMatrix)
A.size
end
Run Code Online (Sandbox Code Playgroud)
然后,我按照以下方式将广播功能与。+运算符一起计时
function time(n::Int)
A = SVMatrix(1.0, (3,4), (n, n))
B = rand(n,n)
@time broadcast(+, A, B)
@time A .+ B
end
time(1000)
println()
time(1000)
Run Code Online (Sandbox Code Playgroud)
得到了结果
0.000000 seconds
0.008207 …Run Code Online (Sandbox Code Playgroud)