初始化 Convex.MaxAtom 数组 Julia
initialize Convex.MaxAtom array Julia
如何使用 Convex
包创建 Array
个 Convex.MaxAtom
类型(或者就此而言,其他 Convex
类型)?我不确定 Array
是否是正确的结构,但我想做的是初始化长度 n
的东西 my_array
以便我可以更新循环中的每个元素,例如
using Convex
v = Variable(n)
w = Variable(n)
my_array = ...initialized array?...
for i = 1:n
my_array[i] = max(v[i],w[i])
end
我试过
my_array = Convex.MaxAtom[]
for i = 1:n
push!(x, max(v[i], w[i]))
end
但我想避免重新分配内存并提前进行。我觉得我一定是错过了 Julia 的一个重要部分,因为我不了解使用什么类型来构造它。
在 Julia Vector{AnyType}(n)
中(用应用程序中的有效类型替换 AnyType)分配长度为 n
的未初始化 AnyType 元素向量。更一般地说,Array{AnyType,3}(2,3,4)
将分配一个大小为 2x3x4 的 3 维张量,类似地可以分配任何维度或形状。
对于问题中的情况,解决方案是:
a = Vector{Convex.MaxAtom}(n)
P.S。元素已分配但未初始化,这很快,但使用 fill(some_value, n)
或 zero(AnyType, n)
可能更安全(需要定义 zero(AnyType)
)。
如何使用 Convex
包创建 Array
个 Convex.MaxAtom
类型(或者就此而言,其他 Convex
类型)?我不确定 Array
是否是正确的结构,但我想做的是初始化长度 n
的东西 my_array
以便我可以更新循环中的每个元素,例如
using Convex
v = Variable(n)
w = Variable(n)
my_array = ...initialized array?...
for i = 1:n
my_array[i] = max(v[i],w[i])
end
我试过
my_array = Convex.MaxAtom[]
for i = 1:n
push!(x, max(v[i], w[i]))
end
但我想避免重新分配内存并提前进行。我觉得我一定是错过了 Julia 的一个重要部分,因为我不了解使用什么类型来构造它。
在 Julia Vector{AnyType}(n)
中(用应用程序中的有效类型替换 AnyType)分配长度为 n
的未初始化 AnyType 元素向量。更一般地说,Array{AnyType,3}(2,3,4)
将分配一个大小为 2x3x4 的 3 维张量,类似地可以分配任何维度或形状。
对于问题中的情况,解决方案是:
a = Vector{Convex.MaxAtom}(n)
P.S。元素已分配但未初始化,这很快,但使用 fill(some_value, n)
或 zero(AnyType, n)
可能更安全(需要定义 zero(AnyType)
)。