如何在 Julia 中清除数组

log*_*ick 5 julia

我有一个代表我想要清除的图像元数据的数组。目前,我使用该empty!()函数,但它抛出一个错误,因为我认为它需要是一个字典,并且我有一个数组,所以我正在寻找另一种方法来清除数组。

作为参考,这是我正在使用的类型:

Array{ImageMetadata.ImageMeta{ColorTypes.Gray{FixedPointNumbers.Normed{UInt8,8}},2,Array{ColorTypes.Gray{FixedPointNumbers.Normed{UInt8,8}},2},P} where P<:AbstractDict{Symbol,Any},1}
Run Code Online (Sandbox Code Playgroud)

pfi*_*seb 9

empty!不应该抛出错误:

julia> x = rand(10);

julia> empty!(x)
0-element Array{Float64,1}
Run Code Online (Sandbox Code Playgroud)

了解您实际看到的错误会很有用。

  • 正确,但是 `Array{ImageMetadata.ImageMeta{ColorTypes.Gray{FixedPointNumbers.Normed{UInt8,8}},2,Array{ColorTypes.Gray{FixedPointNumbers.Normed{UInt8,8}},2},P} 其中 P&lt; :AbstractDict{Symbol,Any},1}` 是一个 `Vector`。 (4认同)
  • `empty!` 仅适用于向量,不适用于更高维度的数组。 (3认同)

Bog*_*ski 4

我不确定“清除”是什么意思,但通常您可以用fill!您选择的值填充数组。

但是,如果您的问题是创建一个数组,其中填充一些要在其条目中设置的值#undef(如果eltype允许的话),那么我不知道有什么方法可以做到这一点。您可以使用它similar来创建一个具有相同形状且未初始化的新数组。