How can I get the size of an array in Julia?
18,469
Here is how you should use size
:
julia> x = [1,2,3]
3-element Array{Int64,1}:
1
2
3
julia> size(x)
(3,)
julia> size(x)[1]
3
julia> size(x, 1)
3
so either extract the first element from size(x)
or directly specify which dimension you want to extract by passing 1
as a second argument.
In your case, as A
is a Vector
(it is single dimensional) you can also use length
:
julia> length(x)
3
Which gives you an integer directly.
The difference between length
and size
is the following:
length
is defined for collections (not only arrays) and returns an integer which gives you the number of elements in the collectionsize
returns aTuple
because in general it can be applied to multi-dimensional objects, in which case the tuple has as many elements as there are dimensions of the object (so in case ofVector
, as in your question, it is 1-element tuple)
Comments
-
Francisco José Letterio almost 2 years
I'm trying to run the following piece of code:
function inversePoly(A::Array{Int64,1}, B::Array{Int64,1}) n = size(A) retVal = A[end] / B[end] i = 1 while i != n retVal = (retVal + 1 / B[n - i]) * A[n - i] i += 1 end return retVal end inversePoly(Array(3:4), Array(4:5))
However, Julia gives me the following error:
LoadError: MethodError: no method matching -(::Tuple{Int64}, ::Int64) Closest candidates are: -(!Matched::Complex{Bool}, ::Real) at complex.jl:298 -(!Matched::Missing, ::Number) at missing.jl:97 -(!Matched::Base.CoreLogging.LogLevel, ::Integer) at logging.jl:107 ... in expression starting at /home/francisco/Julia/abc.jl:12 inversePoly(::Array{Int64,1}, ::Array{Int64,1}) at abc.jl:6 top-level scope at none:0
The 6th line would be
retVal = (retVal + 1 / B[n - i]) * A[n - i]
This means that the statement
n = size(A)
Is saving a tuple in the variable n instead of an integer
How can I get an integer representing the number of elements in A?
Thanks in advance
-
Fengyang Wang over 4 yearsAs a convenience for those used to
numpy
(which is possibly the reason for this question), you can think of Julia'ssize
as analogous tonumpy
'sshape
; andlength
analogous to bothnumpy
'ssize
and Python'slen
.