similar
similar(array, [element_type=eltype(array)], [dims=size(array)])
Create an uninitialized mutable array with the given element type and size,
based upon the given source array. The second and third arguments are both
optional, defaulting to the given array's eltype
and size
. The dimensions
may be specified either as a single tuple argument or as a series of integer
arguments.
Custom AbstractArray subtypes may choose which specific array type is
best-suited to return for the given element type and dimensionality. If they do
not specialize this method, the default is an Array(element_type, dims...)
.
For example, similar(1:10, 1, 4)
returns an uninitialized Array{Int,2}
since
ranges are neither mutable nor support 2 dimensions:
julia> similar(1:10, 1, 4)
1x4 Array{Int64,2}:
4419743872 4374413872 4419743888 0
Conversely, similar(trues(10,10), 2)
returns an uninitialized BitVector
with two elements since BitArray
s are both mutable and can support
1-dimensional arrays:
julia> similar(trues(10,10), 2)
2-element BitArray{1}:
false
false
Since BitArray
s can only store elements of type Bool
, however, if you
request a different element type it will create a regular Array
instead:
julia> similar(falses(10), Float64, 2, 4)
2x4 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
Examples
julia> foo = [1,2,3];
julia> similar(foo, Int8, 3, 3)
3x3 Array{Int8,2}:
-112 -101 0
19 -30 0
124 127 64
See Also
Array, broadcast, cat, combinations, conj!, digits!, fieldnames, fill, fill!, last, length, maximum, minimum, ones, parent, parentindexes, partitions, permutations, pointer, pointer_to_array, promote_shape, rand!, reshape, scale, similar, sum, sum_kbn, takebuf_array, transpose!, vec, zeros,User Contributed Notes
Add a Note
The format of note supported is markdown, use triple backtick to start and end a code block.