Byłem zachwycony, aby dowiedzieć się, że Julia pozwala pięknie zwięzły sposób, aby tworzyć produkty wewnętrzna:Jaki jest najlepszy sposób tworzenia wewnętrznych produktów?
julia> x = [1;0]; y = [0;1];
julia> x'y
1-element Array{Int64,1}:
0
Ta alternatywa dot(x,y)
jest ładny, ale może prowadzić do niespodzianek:
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
Tak, a ja "chciałbym napisać x'y
, wydaje się najlepiej go unikać, ponieważ w przeciwnym razie muszę być świadomy pułapek związanych z skalarami w porównaniu do matryc 1-do-1.
Ale jestem nowa dla Julii i prawdopodobnie nie myślę we właściwy sposób. Czy inni używają tej zwięzłej alternatywy dla dot
, a jeśli tak, to kiedy jest to bezpieczne?
To nie jest bardzo jasne, co trzeba (lub nie) i co jesteś w stanie poświęcić, więc nie jestem delegowania odpowiedź: Można użyć [ '] (⋅' operatora http://julia.readthedocs.org/en/latest/stdlib/linalg/#Base.⋅) zamiast "kropka". Możesz również zadeklarować (http://julia.readthedocs.org/en/latest/manual/types/#type-declarations) jakiego typu oczekujesz dla funkcji zmiennej/zwracającej: 'x = [0; 1]: : Array {Float64,1} ' –