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


Julia similar用法及代碼示例


用法一

similar(array, [element_type=eltype(array)], [dims=size(array)])

根據給定的源數組,使用給定的元素類型和大小創建一個未初始化的可變數組。第二個和第三個參數都是可選的,默認為給定數組的 eltypesize 。維度可以指定為單個元組參數或一係列整數參數。

自定義 AbstractArray 子類型可以選擇最適合返回給定元素類型和維度的特定數組類型。如果他們不專門研究此方法,則默認值為 Array{element_type}(undef, dims...)

例如,similar(1:10, 1, 4) 返回一個未初始化的 Array{Int,2},因為範圍既不可變也不支持二維:

julia> similar(1:10, 1, 4)
1×4 Array{Int64,2}:
 4419743872  4374413872  4419743888  0

相反,similar(trues(10,10), 2) 返回帶有兩個元素的未初始化 BitVector,因為 BitArray 都是可變的並且可以支持一維數組:

julia> similar(trues(10,10), 2)
2-element BitVector:
 0
 0

由於 BitArray 隻能存儲 Bool 類型的元素,但是,如果您請求不同的元素類型,它將創建一個常規的 Array 代替:

julia> similar(falses(10), Float64, 2, 4)
2×4 Array{Float64,2}:
 2.18425e-314  2.18425e-314  2.18425e-314  2.18425e-314
 2.18425e-314  2.18425e-314  2.18425e-314  2.18425e-314

另請參閱: undef isassigned

用法二

similar(storagetype, axes)

創建一個未初始化的可變數組,類似於 storagetype 指定的數組,但最後一個參數指定了 axes

例子

similar(Array{Int}, axes(A))

創建一個 "acts like" 和 Array{Int} 的數組(並且可能確實有一個支持),但它的索引與 A 相同。如果 A 具有常規索引,這將與 Array{Int}(undef, size(A)) 相同,但如果 A 具有非常規索引,則結果的索引將匹配 A

similar(BitArray, (axes(A, 2),))

將創建一個一維邏輯數組,其索引與 A 的列的索引匹配。

相關用法


注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 Base.similar — Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。