【发布时间】:2015-05-23 10:34:36
【问题描述】:
假设我有一个名为 p 的 Array 变量:
julia> p = [5]
julia> typeof(p)
Array{Int64,1}
我应该如何将其转换为标量? p也可能是二维的:
julia> p = [1]''
julia> typeof(p)
Array{Int64,2}
(注意:增加维度的双转置技巧might not work in future versions of Julia)
通过适当的操作,我可以制作任何维度的p,但我应该如何将其减少为标量?
一种可行的方法是p=p[1],但如果p 在p 中有多个元素,则不会引发任何错误;所以,这对我没有好处。
我可以构建自己的函数(通过检查),
function scalar(x)
assert(length(x) == 1)
x[1]
end
但它似乎必须重新发明轮子。
不起作用的是squeeze,它只是剥离维度直到p 是一个零维数组。
(与 Julia: convert 1x1 array from inner product to number 相关,但在这种情况下,与操作无关。)
【问题讨论】: