Array slice [1:<variable]

Hello

I am new to Julia Language aund I am struggling with following problem:

In my data array are empty elements and I am able to find the indices of these elements

> indices = findall(x → x == “”, data)

Next I want to slice the array in follwoing way (as an example the very first slice)

> upto = indices [1] - 1
> part = data[1:upto]

an error is reported: MethodError: no method matching getindex(::Symbol,::Int64)

Is it possible to specify a slice by variable(s)

Thanks a lot and best regards

Hello! I cannot reproduce your error, can you provide a full MWE?

julia> data = ["foo", "bar", "", "baz", "boo", "", "hoo"];
julia> indices = findall(x -> x == "", data)
2-element Vector{Int64}:
 3
 6
julia> upto = indices[1]-1;
julia> part = data[1:upto]
2-element Vector{String}:
 "foo"
 "bar"

However the error indicates, that you’re actually calling getindex on a symbol, maybe you overwrote your data variable with a symbol at some point?

julia> data = :foo
:foo

julia> data[1]
ERROR: MethodError: no method matching getindex(::Symbol, ::Int64)
Stacktrace:
 [1] top-level scope
   @ REPL[7]:1

Edit: completely wild guess but you might be also interested in

julia> data = ["foo", "bar", "", "baz", "boo", "", "hoo"];
julia> indices = findall(x -> x == "", data);
julia> deleteat!(data, indices)

which will remove all empty strings from your data array.

Hello

thank you for your reply.

Shame on me! You’re abolutely right. It’s works as expected.

Excuse me for the unnecessary noise.

Best regards