说我有:
arr = {"a" "b" "r"}
> 1x3 Array{Any,2}:
> "a" "b" "r"
我希望它是Array {Symbol,2}类型的说法。
答案 0 :(得分:4)
还有
julia> convert(Array{Symbol}, arr)
1x3 Array{Symbol,2}:
:a :b :r
答案 1 :(得分:1)
这有效:
symarr = reshape(Symbol[arr...],size(arr)...)
另请注意,如果数组中的所有元素都是您想要的类型,您可以使用:
strarr = reshape([arr...],size(arr)...)
如果您对Vector感到满意,可以使用:
symvec = Symbol[arr...]
strvec = [arr...]
这里也是一个有趣的宏:
macro convarr(a, t)
:(reshape($t[$a...],size($a)...))
end
@convarr arr Symbol
请注意,以上所有内容都会创建原始数组{Any,2}数组
的新副本