小编Mat*_*sen的帖子

UIView里面的UICollectionView

我正在尝试实现一个UICollectionView内部UIView,但我无法找到如何做到这一点.有关于如何使用大量的教程UICollectionViewUICollectionViewController,但不知道如何实现一个在普通视图.你是怎样做的?

xcode uiviewcontroller ios6 uicollectionview

20
推荐指数
1
解决办法
2万
查看次数

(Julia) 快速对数组进行按列求和

我有一个 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 的数组)。是否可以仅使用几行代码(如第二种方法)即可实现计数功能的性能?

arrays optimization multidimensional-array julia

4
推荐指数
1
解决办法
2579
查看次数

在Mac OS X上设置永久环境变量

我想设置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)

只是暂时的,每次我退出终端时,环境变量都会消失,我必须再次输入.我该如何永久化?

(我正在运行约塞米蒂.)

macos environment-variables .bash-profile

3
推荐指数
1
解决办法
3464
查看次数

(朱莉娅)。+运算符似乎未使用我的自定义广播功能,为什么?

我正在实现一个只有一个非零值的自定义矩阵,无论您执行什么操作,这都是矩阵中唯一一个可以为非零值的单元格。我称它为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)

broadcast matrix julia

2
推荐指数
1
解决办法
65
查看次数