Ich war erfreut zu erfahren, dass Julia eine schön prägnante Art und Weise ermöglicht, innere Produkte zu bilden:Was ist der beste Weg, um innere Produkte zu bilden?
julia> x = [1;0]; y = [0;1];
julia> x'y
1-element Array{Int64,1}:
0
Diese Alternative zu dot(x,y)
ist schön, aber es kann zu Überraschungen führen:
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
So, während ich Ich würde gerne schreiben x'y
, es scheint am besten, es zu vermeiden, da ich sonst Fallstricke im Zusammenhang mit Skalaren gegen 1-by-1-Matrizen bewusst sein muss.
Aber ich bin neu zu Julia, und wahrscheinlich denke ich nicht in der richtigen Weise. Verwenden andere diese prägnante Alternative zu dot
, und wenn ja, wann ist dies sicher?
Es ist nicht ganz klar, was Sie brauchen (oder nicht) und was sind Sie bereit zu opfern, so Posting ich keine Antwort: Sie können die [ '⋅' Operator] verwenden (http://julia.readthedocs.org/en/latest/stdlib/linalg/#Base.⋅) anstelle von 'dot'. Sie können auch [declare] (http://julia.readthedocs.org/en/latest/manual/types/#type-declarations) angeben, welchen Typ Sie für eine Variable/Rückgabe-Funktion erwarten: 'x = [0; 1]: : Array {Float64,1} ' –