3

在下面的示例中,我得到一个数组数组作为输出。我想寻求将其减少到的建议n-element vector

示例:我有一个向量x,然后对输出的数组的前 2 个元素执行减法运算a

x = Float64.([1,2,3,4,5])
a= x[2,:] - x[1,:]
1-element Vector{Float64}:
 1.0

现在,当我收集以下范围时,它返回数组数组,如下所示。

c = collect(range(minimum(x).*a, maximum(x).*a, length=10))
10-element Vector{Vector{Float64}}:
 [1.0]
 [1.4444444444444444]
 [1.8888888888888888]
 [2.333333333333333]
 [2.7777777777777777]
 [3.2222222222222223]
 [3.6666666666666665]
 [4.111111111111111]
 [4.555555555555555]
 [5.0]

我想知道如何将其转换为可以输出以下结果的向量?

# Expected result:
10-element Vector{Float64}:
 1.0
 1.4444444444444444
 1.8888888888888888
 2.333333333333333
 2.7777777777777777
 3.2222222222222223
 3.6666666666666665
 4.111111111111111
 4.555555555555555
 5.0

谢谢!!

4

2 回答 2

4

构建a时想要a= x[2] - x[1]. 然后a将是一个标量,其他一切都将按预期运行。

于 2021-04-12T23:36:08.237 回答
3

通常,您可以使用 splatting 和 的组合vcat

julia> xs = [[1],[2,3],[],[4],[5,6,7]]
5-element Vector{Vector{Any}}:
 [1]
 [2, 3]
 []
 [4]
 [5, 6, 7]

julia> vcat(xs...)
7-element Vector{Any}:
 1
 2
 3
 4
 5
 6
 7

话虽如此,我会听从 Oscar Smith 的建议并解决根本问题。

于 2021-04-13T00:06:30.387 回答