Diciamo che ho un Array
variabile chiamata p
:Come devo convertire un array singleton in uno scalare?
julia> p = [5]
julia> typeof(p)
Array{Int64,1}
Come dovrei convertirlo in SCALARE? p
può anche essere 2-dimensionale:
julia> p = [1]''
julia> typeof(p)
Array{Int64,2}
(Nota: il doppio trasposizione trucco per aumentare dimentionality might not work in future versions of Julia)
Attraverso la manipolazione del caso, posso fare p
di qualsiasi dimensione, ma come ho dovrebbe ridurlo a uno scalare?
Un approccio possibile è p=p[1]
, ma che non getterà alcun errore se p
ha più di un elemento in p
; quindi, non mi va bene. ho potuto costruire la mia propria funzione (con il controllo),
function scalar(x)
assert(length(x) == 1)
x[1]
end
ma sembra che si deve reinventare la ruota.
Ciò che non funziona è squeeze
, che rimuove semplicemente le dimensioni fino a p
è un array a dimensione zero.
(legate alla Julia: convert 1x1 array from inner product to number, ma, in questo caso, il funzionamento-agnostico.)