【问题标题】:How to convert a 1D array to tuple in Julia?如何在 Julia 中将一维数组转换为元组?
【发布时间】:2020-03-26 09:32:33
【问题描述】:

我想在 Julia 中使用 reshape 函数重塑一个数组,但新数组的形状存储为一维数组本身。 reshape 将元组作为参数,但不是一维数组。

例如,我希望能够做到这一点:

reshape([1 2 3 ; 4 5 6],(3,2))

但使用[3,2] 而不是(3,2) 作为形状参数的输入。将数组 [3,2] 转换为元组 (3,2) 似乎是显而易见的事情,但如果不能这样做,也许我需要编写另一个 reshape 函数?

感谢任何建议。

【问题讨论】:

    标签: arrays tuples julia reshape splat


    【解决方案1】:

    你可以splat数组:

    julia> reshape([1 2 3 ; 4 5 6], [3,2]...)
    3×2 Array{Int64,2}:
     1  5
     4  3
     2  6
    

    【讨论】:

    • 谢谢!正是我需要的!
    • 或 - 在其他不允许喷溅的用例中 Tuple(array) 从数组创建一个元组。
    • @BogumiłKamiński 该解决方案也很有效。谢谢!我希望 Julia 文档提到它作为元组的构造方法。
    【解决方案2】:
    function array2tuple(a::Array)
       (a...,)
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 2011-07-05
      • 2011-08-24
      • 2015-07-16
      • 2019-04-03
      • 1970-01-01
      相关资源
      最近更新 更多