I want to size the array dimensions which in this case are 5 and 6, but I don’t know why it doesn’t
A=zeros(5,6)
size(A)
and I get the following error
MethodError: objects of type Tuple{Int64,Int64} are not callable
I want to size the array dimensions which in this case are 5 and 6, but I don’t know why it doesn’t
A=zeros(5,6)
size(A)
and I get the following error
MethodError: objects of type Tuple{Int64,Int64} are not callable
I think something in your environment overwrote the size() method. On my machine with 1.4.1:
julia> A=zeros(5,6)
5×6 Array{Float64,2}:
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
julia> size(A)
(5, 6)
Try starting a clean session and retry it…
If you type size you’ll probably see a 2-item tuple returned. Maybe sometime earlier you wrote size = size(A)?
Thanks restart julia I solve it, sometimes julia goes crazy, it could also be for having written this
size = width, height = 600, 600
yep, that would definitely do it
you could still use Base.size, but the better answer is to not call variables size.
Note that this same problem happens if you have a line like size = size(...) in a function. And the error message that you get is a bit confusing:
julia> function foo()
size = size([1, 2])
end
foo (generic function with 1 method)
julia> foo()
ERROR: UndefVarError: size not defined
It’s even more confusing if first you call size() in a function and then later assign to a variable called size in the same function:
julia> function bar()
s = size([1, 2])
size = 1
return nothing
end
bar (generic function with 1 method)
julia> bar()
ERROR: UndefVarError: size not defined
This is an example of the effect proceeding the cause. Basically, if you assign to a local variable size anywhere inside a function, then the compiler treats each instance of size within that function scope as a local variable, even if an instance of size proceeds the local variable assignment.