# Extracting indices using findall()

**URL:** <https://discourse.julialang.org/t/extracting-indices-using-findall/89230>\
**Category:** New to Julia\
**Created:** [October 25, 2022, 3:51am UTC](https://discourse.julialang.org/t/extracting-indices-using-findall/89230 "2022-10-25T03:51:36Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Muhammad\_Nadeem](https://avatars.discourse-cdn.com/v4/letter/m/bc79bd/32.png) [@Muhammad\_Nadeem](https://discourse.julialang.org/u/Muhammad_Nadeem)\
**Post date:** [October 25, 2022, 3:51am UTC](https://discourse.julialang.org/t/extracting-indices-using-findall/89230/1 "2022-10-25T03:51:36Z")

</div>

Hello all,

I am trying to extract indices and assign it to a variable, my simple code is as follows

```julia
ind1 = Vector{Int64}(undef, 4)

L = [0, 0, 0, 0]
z = [0,1,1,1]
ind1 = map(1:4) do i
    findall(x->x==L, z)
end

```

The answer should be: ind1 = [1] as at only index one we have z = L. But it isnt working, can anyone help me out here?

Thanks

---

<div class="post-metadata">

**Author:** ![GHTaarn](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ghtaarn/32/216007_2.png) [@GHTaarn](https://discourse.julialang.org/u/GHTaarn)\
**Post date:** [October 25, 2022, 4:17am UTC](https://discourse.julialang.org/t/extracting-indices-using-findall/89230/2 "2022-10-25T04:17:04Z")

</div>

The simplest is:

```julia
ind1 = findall(L .== z)

```

Alternatively:

```julia
ind1 = findall(1:4) do i
    L[i] == z[i]
end

```

---

<div class="post-metadata">

**Author:** ![Muhammad\_Nadeem](https://avatars.discourse-cdn.com/v4/letter/m/bc79bd/32.png) [@Muhammad\_Nadeem](https://discourse.julialang.org/u/Muhammad_Nadeem)\
**Post date:** [October 25, 2022, 4:33am UTC](https://discourse.julialang.org/t/extracting-indices-using-findall/89230/3 "2022-10-25T04:33:45Z")

</div>

Thanks, it works but i have to put two conditions for findall, i have modified the code a bit as

```julia

M = 1*Matrix(I, 4, 4)
N = M
ind1 = intersect(findall((1:4) do i
    l[i] == z[i]),findall(sum(M[i,j]*z[j] for j in items)+sum(N[i,j]*w[j] for j in items)+q[i]>0),)
end

```

But this doesnt work, i have to put two conditions actually like this, ind1 should containt the indices where `z[i] == L[i]` and `(Mz + Nw + q)_i >0`. Any idea how can i tackle it?

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [October 25, 2022, 4:38am UTC](https://discourse.julialang.org/t/extracting-indices-using-findall/89230/4 "2022-10-25T04:38:03Z")

</div>

```julia
ind1 = indall(1:4) do i
    MzNwq = sum(M[i,j]*z[j] for j in items)+sum(N[i,j]*w[j] for j in items)+q[i]
    l[i] == z[i] && MzNwq > 0
end

```

however you normally calculate `(Mz + Nw + q)_i`

---

<div class="post-metadata">

**Author:** ![Muhammad\_Nadeem](https://avatars.discourse-cdn.com/v4/letter/m/bc79bd/32.png) [@Muhammad\_Nadeem](https://discourse.julialang.org/u/Muhammad_Nadeem)\
**Post date:** [October 25, 2022, 4:40am UTC](https://discourse.julialang.org/t/extracting-indices-using-findall/89230/5 "2022-10-25T04:40:52Z")

</div>

Works perfect. Thank you so much 🙂
