Hãy nói rằng tôi có một biến Array
gọi p
:Làm cách nào để chuyển đổi một mảng Singleton thành vô hướng?
julia> p = [5]
julia> typeof(p)
Array{Int64,1}
Làm thế nào tôi nên chuyển nó sang SCALAR? p
cũng có thể 2 chiều:
julia> p = [1]''
julia> typeof(p)
Array{Int64,2}
(Lưu ý: các transpose lừa đôi để tăng dimentionality might not work in future versions of Julia)
Qua thao tác thích hợp, tôi có thể làm p
của bất kỳ kích thước, nhưng làm thế nào tôi nên giảm nó để một vô hướng?
Một giải pháp khả thi là p=p[1]
, nhưng điều đó sẽ không ném bất kỳ lỗi nếu p
có nhiều hơn một phần tử trong p
; vì vậy, điều đó không tốt với tôi. tôi có thể xây dựng chức năng của riêng tôi (với việc kiểm tra),
function scalar(x)
assert(length(x) == 1)
x[1]
end
nhưng nó có vẻ như nó phải được reinventing the wheel.
Điều gì không hoạt động là squeeze
, chỉ đơn giản là bóc các thứ nguyên cho đến khi p
là mảng không theo chiều.
(Liên quan đến Julia: convert 1x1 array from inner product to number nhưng, trong trường hợp này, vận hành-agnostic).