假设我在Julia中有一些复合类型的数组.我知道我不能简单地将值赋给数组,因为它的元素是未定义的.例如代码
type struct
u::Int64
v::Int64
end
X = Array(struct, 100)
X[10].u = 3
Run Code Online (Sandbox Code Playgroud)
将生成此错误:
ERROR: access to undefined reference
in getindex at array.jl:277
in include at boot.jl:238
in include_from_node1 at loading.jl:114
Run Code Online (Sandbox Code Playgroud)
处理这个问题的标准方法是什么?现在我只是在做类似的事情:
samples = Array(Sample1d, num_samples)
fill!(samples, Sample1d(0, 0, 0))
samples[i] = ...
Run Code Online (Sandbox Code Playgroud)
有没有更简洁或朱利安的方式来做到这一点?
您可以使用fill同时创建和填充数组:
type struct
u::Int
v::Int
end
struct() = struct(0, 0)
X = fill(struct(), 100)
X[10].u = 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
708 次 |
| 最近记录: |