當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。