如何使normalize在Julia中处理所有类型的数组?

如何使normalize在Julia中处理所有类型的数组?,julia,Julia,这对normalize[1,2]不起作用,它只对normalize[1,2]起作用 如何使其接受所有类型的列表、数组和向量?normalize工作在向量上,而[12]是一个二维矩阵 julia> [1, 2] isa Vector true julia> [1 2] isa Vector false 可以使用[:]创建矩阵的展平版本,如中所示: julia> [1 2][:] isa Vector true 因此,您可以毫无问题地调用normalize[12][:]: j

这对normalize[1,2]不起作用,它只对normalize[1,2]起作用


如何使其接受所有类型的列表、数组和向量?

normalize工作在向量上,而[12]是一个二维矩阵

julia> [1, 2] isa Vector
true

julia> [1 2] isa Vector
false
可以使用[:]创建矩阵的展平版本,如中所示:

julia> [1 2][:] isa Vector
true
因此,您可以毫无问题地调用normalize[12][:]:

julia> normalize([1, 2]) == normalize([1 2][:])
true
请注意,使用vec也有效,并避免了一个额外副本:

julia> normalize([1, 2]) == normalize(vec([1 2]))
true
为了避免任何副本,您可以使用normalize!而不是规格化,以改变向量的地方注意,规格化!首选浮点值,而不是整数值


如果需要恢复原始[1 2]形状,请查找“重塑”。

这不创建副本吗?最好使用vec。是的,它会,就像正常化一样。我将添加该选项。