当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia Broadcast.broadcast用法及代码示例


用法:

broadcast(f, As...)

在数组、元组、集合、 Ref 和/或标量 As 上广播函数 f

广播将函数 f 应用于容器参数的元素和 As 中的标量本身。通过虚拟重复值,扩展单例和缺失维度以匹配其他参数的范围。默认情况下,只有有限数量的类型被视为标量,包括 Number s、String s、Symbol s、Type s、Function s 和一些常见的单例,如 missing nothing .所有其他参数都被迭代或索引到元素中。

生成的容器类型由以下规则建立:

  • 如果所有参数都是标量或零维数组,则返回未包装的标量。
  • 如果至少一个参数是元组,而所有其他参数都是标量或零维数组,则它返回一个元组。
  • 所有其他参数组合默认返回 Array ,但自定义容器类型可以定义自己的实现和 promotion-like 规则来自定义结果,当它们显示为参数时。

广播存在一种特殊语法:f.(args...) 等价于 broadcast(f, args...) ,并且嵌套的 f.(g.(args...)) 调用被融合到单个广播循环中。

例子

julia> A = [1, 2, 3, 4, 5]
5-element Vector{Int64}:
 1
 2
 3
 4
 5

julia> B = [1 2; 3 4; 5 6; 7 8; 9 10]
5×2 Matrix{Int64}:
 1   2
 3   4
 5   6
 7   8
 9  10

julia> broadcast(+, A, B)
5×2 Matrix{Int64}:
  2   3
  5   6
  8   9
 11  12
 14  15

julia> parse.(Int, ["1", "2"])
2-element Vector{Int64}:
 1
 2

julia> abs.((1, -2))
(1, 2)

julia> broadcast(+, 1.0, (0, -2.0))
(1.0, -1.0)

julia> (+).([[0,2], [1,3]], Ref{Vector{Int}}([1,-1]))
2-element Vector{Vector{Int64}}:
 [1, 1]
 [2, 2]

julia> string.(("one","two","three","four"), ": ", 1:4)
4-element Vector{String}:
 "one: 1"
 "two: 2"
 "three: 3"
 "four: 4"

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.Broadcast.broadcast — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。