如何使用Array包创建Convex.MaxAtom的Convex (或其他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但我想避免重新分配内存,并提前做。我觉得我一定是错过了朱莉娅的一个重要部分,因为我不知道该用什么类型来构造它。
发布于 2017-09-14 21:50:39
在Julia中,Vector{AnyType}(n) (用应用程序中的有效类型替换AnyType )分配长度为n的未初始化AnyType元素的向量。更广泛地说,Array{AnyType,3}(2,3,4)会分配一个尺寸为2x3x4的三维张量,类似地,任何尺寸或形状都可以分配。
对于问题中的情况,解决办法是:
a = Vector{Convex.MaxAtom}(n)元素被分配但未初始化,这是快速的,但是使用fill(some_value, n)或zero(AnyType, n)可能更安全(这需要定义zero(AnyType) )。
https://stackoverflow.com/questions/46223004
复制相似问题