【问题标题】:Loop-Created Matrices in JuliaJulia 中的循环创建矩阵
【发布时间】:2015-11-21 21:07:14
【问题描述】:

假设我们有数组 u 和 v,以及函数 f。我们想要一个由 u 和 v 的所有成员的 f(ui, vi) 组成的矩阵 F。 试试这个:

F = [ [f(ui,vi) for vi in v] for ui in u]

结果是一个数组数组(用 Julia 的话来说,Array{Array{Int64,1},1})

如何将其重塑为二维数组? (Array{Int64,2})

【问题讨论】:

    标签: arrays matrix julia


    【解决方案1】:

    只需使用一个multidimensional comprehension,而不是两个嵌套推导式:

    F = [f(ui,vi) for vi in v, ui in u]
    

    【讨论】:

    • 谢谢!那不是for ui in u, vi in v吗?
    • 这取决于您想要连续的维度(因此更快)。在您的原始示例中,内部数组是连续的,每个数组都在 v 中迭代 u 中的一个元素。我列出的顺序是相似的,因为 Julia 是列专业的。对于u 中的一个元素,每一列都会遍历v。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2023-01-02
    • 1970-01-01
    • 2017-01-28
    相关资源
    最近更新 更多