如何在 Julia 中将数组转换为数组?
Posted
技术标签:
【中文标题】如何在 Julia 中将数组转换为数组?【英文标题】:How to convert an array of array to array in Julia? 【发布时间】:2021-04-12 23:33:27 【问题描述】:在下面的示例中,我得到一个数组数组作为输出。我想寻求建议将其减少到n-element vector
。
示例:我有一个向量 x
,然后我对输出 a
的数组的前 2 个元素执行减法。
x = Float64.([1,2,3,4,5])
a= x[2,:] - x[1,:]
1-element VectorFloat64:
1.0
现在当我收集以下范围时,它返回数组数组,如下所示。
c = collect(range(minimum(x).*a, maximum(x).*a, length=10))
10-element VectorVectorFloat64:
[1.0]
[1.4444444444444444]
[1.8888888888888888]
[2.333333333333333]
[2.7777777777777777]
[3.2222222222222223]
[3.6666666666666665]
[4.111111111111111]
[4.555555555555555]
[5.0]
我想知道如何将其转换为可以输出以下结果的向量?
# Expected result:
10-element VectorFloat64:
1.0
1.4444444444444444
1.8888888888888888
2.333333333333333
2.7777777777777777
3.2222222222222223
3.6666666666666665
4.111111111111111
4.555555555555555
5.0
谢谢!!
【问题讨论】:
【参考方案1】:在构造a
时,您需要a= x[2] - x[1]
。那么a
将是一个标量,其他一切都将按预期运行。
【讨论】:
【参考方案2】:一般来说,你可以使用splatting和vcat
的组合:
julia> xs = [[1],[2,3],[],[4],[5,6,7]]
5-element VectorVectorAny:
[1]
[2, 3]
[]
[4]
[5, 6, 7]
julia> vcat(xs...)
7-element VectorAny:
1
2
3
4
5
6
7
话虽如此,我会听从 Oscar Smith 的建议并解决根本问题。
【讨论】:
以上是关于如何在 Julia 中将数组转换为数组?的主要内容,如果未能解决你的问题,请参考以下文章