代码之家  ›  专栏  ›  技术社区  ›  fatdragon

Julia中具有阵列广播的除法算子

  •  3
  • fatdragon  · 技术社区  · 8 年前

    我能够将常数乘法到数组中,但无法对除法运算符执行相同的操作。预期?

    julia> 2 * [1,2,3]
    3-element Array{Int64,1}:
     2
     4
     6
    
    julia> 2 / [1,2,3]
    ERROR: MethodError: no method matching /(::Int64, ::Array{Int64,1})
    Closest candidates are:
      /(::Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8}, ::Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8}) at int.jl:38
      /(::Union{Int16, Int32, Int64, Int8, UInt16, UInt32, UInt64, UInt8}, ::BigInt) at gmp.jl:381
      /(::T<:Integer, ::T<:Integer) where T<:Integer at int.jl:36
      ...
    
    1 回复  |  直到 8 年前
        1
  •  5
  •   xiaodai    8 年前

    不确定是否需要,但在矩阵代数中,向量乘以标量是很常见的。但是用一个数字除以一个向量是没有定义的,但是你想要的是通过广播语法实现的,只需要在前面加一个点 / 所以它变成了 ./ 这意味着按顺序应用除法元素。

    2 ./ [1,2,3]

    推荐文章