I am converting some old Julia 0.5 code into Matlab. I know broadcasting uses the dot notation but I don’t understand why you would want to use:

L = getindex.(L,1)

inside a for or while loop in Julia code. At the command prompt you get the same as the variable name as output so in Matlab I am just ignoring the getindex part so:

g = getindex.(function(blah),1)

I just say is:

g = function(blah)

which seems to work fine but I must be missing the point of what the original code was trying to do.

thanks,

`getindex`

does what square brackets does.

```
julia> a = rand(2,2)
2×2 Array{Float64,2}:
0.573604 0.332509
0.571927 0.137868
julia> a[1]
0.5736038727235953
julia> getindex(a, 1)
0.5736038727235953
julia> a[1, :]
2-element Array{Float64,1}:
0.5736038727235953
0.332508603490159
julia> getindex(a, 1, :)
2-element Array{Float64,1}:
0.5736038727235953
0.332508603490159
```

`getindex.(L, 1)`

is broadcasting the getindex operation on each element of `L`

. In this case, assuming the elements of `L`

don’t have custom indexing, it’s the same as doing `first.(L)`

. Note that L = `getindex.(L, 1)`

is very probably not type stable.

1 Like

I think it must have been to remove cells or square brackets around values within an array. So I guess that is why you said it is not type stable. I found you can remove square brackets in an array. I realise this doesn’t make much sense.

eg:

L = [1,2,[3]]

then use:

L = getindex.(L,1)

recovers the array as floating point numbers.

I might be wrong in assuming that was why it was used.