Sono stato felice di apprendere che Julia permette un modo meravigliosamente succinta per formare prodotti interni:Qual è il modo migliore per creare prodotti interni?
julia> x = [1;0]; y = [0;1];
julia> x'y
1-element Array{Int64,1}:
0
Questa alternativa al dot(x,y)
è bello, ma può portare a sorprese:
julia> @printf "Inner product = %f\n" x'y
Inner product = ERROR: type: non-boolean (Array{Bool,1}) used in boolean context
julia> @printf "Inner product = %f\n" dot(x,y)
Inner product = 0.000000
Così, mentre i 'Mi piacerebbe scrivere x'y
, sembra meglio evitarlo, poiché altrimenti ho bisogno di essere consapevole delle insidie relative agli scalari rispetto alle matrici 1-by-1.
Ma io sono nuovo di Julia, e probabilmente non sto pensando nel modo giusto. Altri usano questa alternativa succinta a dot
e, in caso affermativo, quando è sicuro farlo?
Non è molto chiaro che cosa avete bisogno (o non fare) e che cosa siete disposti a sacrificare, quindi non mi distacco una risposta: È possibile utilizzare il [ '⋅' operator] (http://julia.readthedocs.org/en/latest/stdlib/linalg/#Base.⋅) invece di 'punto'. Puoi anche [dichiarare] (http://julia.readthedocs.org/en/latest/manual/types/#type-declarations) quale tipo ti aspetti per una funzione variabile/di ritorno: 'x = [0; 1]: : Array {Float64,1} ' –