# Usage of if inside arrays

**URL:** <https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795>\
**Category:** New to Julia\
**Created:** [December 3, 2019, 12:40pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795 "2019-12-03T12:40:26Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![HelgavonLichtenstein](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/helgavonlichtenstein/32/5005_2.png) [@HelgavonLichtenstein](https://discourse.julialang.org/u/HelgavonLichtenstein)\
**Post date:** [December 3, 2019, 12:40pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795/1 "2019-12-03T12:40:26Z")

</div>

Hello,

I wish to change values inside an array if certain criteria are met. Within the array I am focusing on the values in three sections like so:

![image](https://global.discourse-cdn.com/julialang/original/3X/6/a/6a0491c5fc6a074e6e1a31660ccddb0120f66d25.png)

(lets pretend it’s 10x10)

What I want is to check the values across all columns against specific rows, and if the value in those rows are higher or lower than a threshold, the value in that box is changed to either 2,3 or 4.

```julia
function create_trophic_test2()
    trophic_test2 = rand(10,10)
    if any(trophic_test2[1:3,:] .< 0.4) .&& any(trophic_test2[4:end,:] .> 0.2)
        trophic_test2 .=2
    elseif any(trophic_test2[:,4:7] .> 0.2) 
        trophic_test2 .=3
    else 
        any(trophic_test2[1:3,:] .> 0.2) .&& any(trophic_test2[4:end,:] .< 0.4)
        trophic_test2 .=4
    end
    return trophic_test2
end

trophic_test2 = create_trophic_test2

```

---

<div class="post-metadata">

**Author:** ![non-Jedi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/non-jedi/32/3645_2.png) [@non-Jedi](https://discourse.julialang.org/u/non-Jedi)\
**Post date:** [December 3, 2019, 12:53pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795/2 "2019-12-03T12:53:26Z")

</div>

I haven’t looked closely at what you’re trying to accomplish, but here are a couple notes on spots in your code that probably aren’t doing what you expect:

> [@HelgavonLichtenstein](#):
>
> ```julia
> trophic_test2 = zeros(10,10)
> trophic_test2 = rand(Uniform(0, 1), 10,10)
> 
> ```

The first line isn’t necessary here. It creates an array and binds it to `trophic_test2`, but then you immediately create an entirely different array and overwrite that binding. Also, instead of using `Uniform` from `Distributions`, you can just say `rand(10, 10)` which automatically draws from [0,1).

> [@HelgavonLichtenstein](#):
>
> ```julia
> else trophic_test2[1:3,:] .> 0.2 && trophic_test2[4:end,:] .< 0.4
> 
> ```

The `else` clause does not take a logical predicate as an argument. This syntax is equivalent to:

```julia
else
    trophic_test2[1:3,:] .> 0.2 && trophic_test2[4:end,:] .< 0.4

```

> [@HelgavonLichtenstein](#):
>
> ```julia
> if trophic_test2[1:3,:] .< 0.4 && trophic_test2[4:end,:] .> 0.2
> 
> ```

`if` needs a single `Bool` argument rather than an array of `Bool`s. You probably want to wrap this in something like `any` or `all`. Also, you probably want to broadcast the `&&` as well (`.&&`).

---

<div class="post-metadata">

**Author:** ![HelgavonLichtenstein](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/helgavonlichtenstein/32/5005_2.png) [@HelgavonLichtenstein](https://discourse.julialang.org/u/HelgavonLichtenstein)\
**Post date:** [December 3, 2019, 12:57pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795/3 "2019-12-03T12:57:13Z")

</div>

Thanks for the tips! I have edited my example code.

Unfortunately this generates the error `syntax: invalid syntax &(any(materialize(broadcasted(>, getindex(trophic_test2, :(4, lastindex(trophic_test2, 1)), :), 0.2)))) top-level scope at untitled-89f41a4f54dc03f5ad7a90ba69cb3b29:1 `

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [December 3, 2019, 1:22pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795/4 "2019-12-03T13:22:10Z")

</div>

Without checking the logic it should be:

```julia
julia> function trophic_test2()
           trophic_test2 = rand(10,10)
           if any(trophic_test2[1:3,:] .< 0.4) && any(trophic_test2[4:end,:] .> 0.2)
               trophic_test2 .=2
           elseif any(trophic_test2[:,4:7] .> 0.2)
               trophic_test2 .=3
           else
                     trophic_test2 .=4
           end
           return trophic_test2
       end

```

Your syntax error is, because you added any together with the broadcast .&& like

```julia
any( ... ) .&& any( ... )

```

which gives an invalid syntax as any() returns a bool. You can not broadcast two bools, just arrays of bools, thats what broadcasting is for: arrays!

The line after else

```julia
else 
        any(trophic_test2[1:3,:] .> 0.2) .&& any(trophic_test2[4:end,:] .< 0.4)

```

does nothing.  
Maybe you mean

```julia
elseif any(trophic_test2[1:3,:] .> 0.2) .&& any(trophic_test2[4:end,:] .< 0.4)
    trophic_test2 .=4
end

```

but this depends on your logic.

---

<div class="post-metadata">

**Author:** ![yha](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yha/32/3502_2.png) [@yha](https://discourse.julialang.org/u/yha)\
**Post date:** [December 3, 2019, 3:03pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795/5 "2019-12-03T15:03:47Z")

</div>

> [@oheil](#):
>
> Your syntax error is, because you added any together with the broadcast .&& like

This has nothing to do with `any`. It’s just that there’s no such thing as `.&&` in Julia, so it’s parsed as `.& &`, which later errors:

```julia-auto
julia> Meta.parse("1 .&& 2")
:(1 .& &2)

```

The short-circuiting operators `&&` and `||` cannot be broadcasted (you can broadcast the bitwise operator `&` to do element-wise “and”, but it’s not needed here).

Also, here

> [@HelgavonLichtenstein](#):
>
> ```julia-auto
> trophic_test2 = create_trophic_test2
> 
> ```

You’re probably trying to call the function, but you’re not. This just binds the name `trophic_test2` to also refer to the same function. To call the function, you need parentheses: `create_trophic_test2()`.

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [December 3, 2019, 4:38pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795/6 "2019-12-03T16:38:49Z")

</div>

> [@HelgavonLichtenstein](#):
>
> I wish to change values inside an array if certain criteria are met.

This seems like one of those cases where if you just write a loop it will be both simpler and faster, especially if you arrange your code so that in a single pass over the array contents you check all of your criteria.

---

<div class="post-metadata">

**Author:** ![HelgavonLichtenstein](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/helgavonlichtenstein/32/5005_2.png) [@HelgavonLichtenstein](https://discourse.julialang.org/u/HelgavonLichtenstein)\
**Post date:** [December 4, 2019, 3:25pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795/7 "2019-12-04T15:25:18Z")

</div>

_Edit: I have edited my code from the original posting_

Hello,

I wish to change values inside an array if certain criteria are met. Within the array I am focusing on the values in three sections like so:

![image](https://global.discourse-cdn.com/julialang/original/3X/6/a/6a0491c5fc6a074e6e1a31660ccddb0120f66d25.png)

Green = plants  
Blue = omnivores  
Red = carnivores  
White = zeros

What I want is to check the sum of a part of each column, and if criteria is met (sum = 0), change all the values in that column to a certain value.

However I end up overwriting all the values in the array, instead of just the columns that meet the criteria. Is there way to do this with if statements?

MWE

```julia
plants = 5
animals = 10

foodweb = rand(plants+animals,plants+animals)

foodweb
function create_trophic()
   trophic = copy(foodweb)

   trophic[plants+1:plants+animals,plants+1:plants+4] .= 0.0 # this is just to mimic my actual array
   trophic[1:plants,plants+7:plants+animals] .= 0.0 # this is just to mimic my actual array

   trophic[:,1:plants] .= 1.0
   if any(sum(trophic[plants+1:end,plants+1:end], dims=1) .== 0.0)
      trophic[:,plants+1:end] .= 2.0 #indicates herbivory
   elseif any(sum(trophic[1:plants,plants+1:end], dims=1) .== 0.0)
      trophic[:,plants+1:end] .= 4.0 #indicates carnivory
   else
      trophic[:,plants+1:end] .= 3.0 # indicates omnivory, 
   end
   return trophic
end

trophic = create_trophic()

```

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [December 4, 2019, 7:02pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795/8 "2019-12-04T19:02:15Z")

</div>

Somehow I am twisting my thoughts but I admit I don’t understand what exactly you try to do.  
Can we start with smaller array, e.g.:

```julia
julia> plants = 2
2

julia> animals = 3
3

julia> foodweb = rand(plants+animals,plants+animals)
5×5 Array{Float64,2}:
 0.788009 0.102808 0.0477518 0.0276722 0.17792
 0.593425 0.0217724 0.28276 0.461792 0.660652
 0.523148 0.815514 0.215802 0.31951 0.00259442
 0.51613 0.897586 0.663421 0.557986 0.419304
 0.823085 0.828389 0.633237 0.706203 0.914497

julia> foodweb[plants+1:plants+animals,plants+1:plants+1] .= 0.0
3×1 view(::Array{Float64,2}, 3:5, 3:3) with eltype Float64:
 0.0
 0.0
 0.0

julia> foodweb[1:plants,plants+2:plants+animals] .= 0.0
2×2 view(::Array{Float64,2}, 1:2, 4:5) with eltype Float64:
 0.0 0.0
 0.0 0.0

julia> foodweb[:,1:plants] .= 1.0
5×2 view(::Array{Float64,2}, :, 1:2) with eltype Float64:
 1.0 1.0
 1.0 1.0
 1.0 1.0
 1.0 1.0
 1.0 1.0

julia> foodweb
5×5 Array{Float64,2}:
 1.0 1.0 0.0477518 0.0 0.0
 1.0 1.0 0.28276 0.0 0.0
 1.0 1.0 0.0 0.31951 0.00259442
 1.0 1.0 0.0 0.557986 0.419304
 1.0 1.0 0.0 0.706203 0.914497

```

Ok, the values 1.0 in this array seem be related to your blue section, the other non zero values to green and red. But it is not the same order (as it is in your own example above). You may change this in your answer to what it really is but let it be small.

Now, how should the result array `trophic` look like?

You may describe your algorithm you have in mind with some kind of pseudo code, e.g.:

1. check if in column 1 is at least one number not zero
2. if yes change values in this column and in rows x to y to value z
3. goto 1) and check next column

or something like that.

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [December 4, 2019, 7:17pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795/9 "2019-12-04T19:17:48Z")

</div>

After some more twisting I give it try, and you can see, if this comes near your desired result:

```julia
julia> plants = 5
5

julia> animals = 10
10

julia>

julia> foodweb = rand(plants+animals,plants+animals)
15×15 Array{Float64,2}:
 0.790765 0.74945 0.178216 0.880243 0.0535738 0.0578965 0.974428 … 0.208304 0.720289 0.648201 0.737452 0.0847284 0.564161
 0.8582 0.46515 0.735909 0.208577 0.873841 0.527551 0.0390977 0.936396 0.129987 0.853694 0.23191 0.880875 0.399355
 0.0587578 0.317092 0.346076 0.272996 0.160502 0.473623 0.139277 0.9657 0.625101 0.442957 0.546243 0.281135 0.867061
 0.669335 0.23564 0.154817 0.453713 0.366344 0.537439 0.358694 0.990022 0.0286653 0.779038 0.536321 0.787731 0.596143
 0.659701 0.152065 0.856429 0.279055 0.384945 0.957591 0.341439 0.23478 0.466294 0.227259 0.701546 0.837532 0.893488
 0.0477922 0.935403 0.164517 0.698783 0.540316 0.699417 0.68533 … 0.990392 0.677236 0.178252 0.47287 0.601711 0.648389
 0.364394 0.0506907 0.951289 0.0418122 0.305796 0.626786 0.0393663 0.149337 0.545259 0.031105 0.0976091 0.58886 0.202296
 0.426242 0.923585 0.739397 0.276032 0.230438 0.887925 0.267237 0.308956 0.110004 0.218 0.752419 0.362512 0.808582
 0.632486 0.710518 0.488124 0.316211 0.431615 0.590922 0.0856947 0.845271 0.114726 0.991982 0.592431 0.396041 0.577046
 0.265683 0.669511 0.642308 0.7515 0.295317 0.74549 0.201287 0.145904 0.0425054 0.433327 0.67357 0.45051 0.374685
 0.993715 0.491474 0.970538 0.578483 0.953251 0.470365 0.514761 … 0.333113 0.613621 0.00758787 0.0229881 0.715957 0.913001
 0.70124 0.415128 0.291898 0.989158 0.00726582 0.0460169 0.201821 0.294963 0.909659 0.673933 0.654697 0.401348 0.199975
 0.358803 0.669853 0.91429 0.48196 0.0323081 0.4207 0.760229 0.664042 0.753911 0.452759 0.595092 0.00637201 0.927855
 0.436788 0.428121 0.515393 0.913713 0.257735 0.5943 0.17623 0.808202 0.289646 0.552934 0.401224 0.455273 0.367444
 0.330589 0.0320683 0.115222 0.494594 0.568123 0.774907 0.249329 0.64501 0.190103 0.230544 0.89837 0.0482878 0.67141

julia>

julia> foodweb
15×15 Array{Float64,2}:
 0.790765 0.74945 0.178216 0.880243 0.0535738 0.0578965 0.974428 … 0.208304 0.720289 0.648201 0.737452 0.0847284 0.564161
 0.8582 0.46515 0.735909 0.208577 0.873841 0.527551 0.0390977 0.936396 0.129987 0.853694 0.23191 0.880875 0.399355
 0.0587578 0.317092 0.346076 0.272996 0.160502 0.473623 0.139277 0.9657 0.625101 0.442957 0.546243 0.281135 0.867061
 0.669335 0.23564 0.154817 0.453713 0.366344 0.537439 0.358694 0.990022 0.0286653 0.779038 0.536321 0.787731 0.596143
 0.659701 0.152065 0.856429 0.279055 0.384945 0.957591 0.341439 0.23478 0.466294 0.227259 0.701546 0.837532 0.893488
 0.0477922 0.935403 0.164517 0.698783 0.540316 0.699417 0.68533 … 0.990392 0.677236 0.178252 0.47287 0.601711 0.648389
 0.364394 0.0506907 0.951289 0.0418122 0.305796 0.626786 0.0393663 0.149337 0.545259 0.031105 0.0976091 0.58886 0.202296
 0.426242 0.923585 0.739397 0.276032 0.230438 0.887925 0.267237 0.308956 0.110004 0.218 0.752419 0.362512 0.808582
 0.632486 0.710518 0.488124 0.316211 0.431615 0.590922 0.0856947 0.845271 0.114726 0.991982 0.592431 0.396041 0.577046
 0.265683 0.669511 0.642308 0.7515 0.295317 0.74549 0.201287 0.145904 0.0425054 0.433327 0.67357 0.45051 0.374685
 0.993715 0.491474 0.970538 0.578483 0.953251 0.470365 0.514761 … 0.333113 0.613621 0.00758787 0.0229881 0.715957 0.913001
 0.70124 0.415128 0.291898 0.989158 0.00726582 0.0460169 0.201821 0.294963 0.909659 0.673933 0.654697 0.401348 0.199975
 0.358803 0.669853 0.91429 0.48196 0.0323081 0.4207 0.760229 0.664042 0.753911 0.452759 0.595092 0.00637201 0.927855
 0.436788 0.428121 0.515393 0.913713 0.257735 0.5943 0.17623 0.808202 0.289646 0.552934 0.401224 0.455273 0.367444
 0.330589 0.0320683 0.115222 0.494594 0.568123 0.774907 0.249329 0.64501 0.190103 0.230544 0.89837 0.0482878 0.67141

julia> function create_trophic()
          trophic = copy(foodweb)

          trophic[plants+1:plants+animals,plants+1:plants+4] .= 0.0 # this is just to mimic my actual array
          trophic[1:plants,plants+7:plants+animals] .= 0.0 # this is just to mimic my actual array

          trophic[:,1:plants] .= 1.0

          for column in 1:plants+animals
              if all(trophic[:,column] .>= 1.0)
                 trophic[:,column] .= 1.0 #indicates herbivory
              elseif all(trophic[1:plants,column] .> 0.0) && all(trophic[plants+1:end,column] .== 0.0)
                 trophic[1:plants,column] .= 4.0 #indicates carnivory
              elseif all(trophic[1:plants,column] .== 0.0) && all(trophic[plants+1:end,column] .> 0.0)
                 trophic[plants+1:end,column] .= 3.0 # indicates omnivory,
              else
                 trophic[:,column] .= 0.0
              end
          end
          return trophic
       end
create_trophic (generic function with 1 method)

julia>

julia> trophic = create_trophic()
15×15 Array{Float64,2}:
 1.0 1.0 1.0 1.0 1.0 4.0 4.0 4.0 4.0 0.0 0.0 0.0 0.0 0.0 0.0
 1.0 1.0 1.0 1.0 1.0 4.0 4.0 4.0 4.0 0.0 0.0 0.0 0.0 0.0 0.0
 1.0 1.0 1.0 1.0 1.0 4.0 4.0 4.0 4.0 0.0 0.0 0.0 0.0 0.0 0.0
 1.0 1.0 1.0 1.0 1.0 4.0 4.0 4.0 4.0 0.0 0.0 0.0 0.0 0.0 0.0
 1.0 1.0 1.0 1.0 1.0 4.0 4.0 4.0 4.0 0.0 0.0 0.0 0.0 0.0 0.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 3.0 3.0 3.0 3.0

julia> 

```

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [December 4, 2019, 7:20pm UTC](https://discourse.julialang.org/t/usage-of-if-inside-arrays/31795/10 "2019-12-04T19:20:37Z")

</div>

Or another variant (because you example matrix `trophic` does not really match your image):

```julia
julia> plants = 5
5

julia> animals = 10
10

julia>

julia> foodweb = rand(plants+animals,plants+animals)
15×15 Array{Float64,2}:
 0.586139 0.242526 0.175424 0.41908 0.608365 0.623958 0.985096 … 0.564946 0.563235 0.855666 0.160699 0.294043 0.439596
 0.606276 0.783888 0.187657 0.45819 0.382996 0.538697 0.416667 0.0788532 0.22072 0.237465 0.65115 0.263006 0.260589
 0.121644 0.74934 0.176507 0.159718 0.0899451 0.998951 0.98093 0.18824 0.990353 0.245849 0.211564 0.192811 0.419919
 0.254097 0.0542392 0.528426 0.738465 0.564184 0.163758 0.533865 0.278683 0.509338 0.357289 0.527181 0.495044 0.612462
 0.113537 0.0302919 0.361624 0.275809 0.186019 0.120429 0.0733641 0.484558 0.882517 0.613164 0.834181 0.981004 0.445259
 0.360844 0.0184298 0.734411 0.457512 0.790891 0.11065 0.962243 … 0.676564 0.240609 0.546232 0.760843 0.676749 0.938689
 0.429256 0.337486 0.589287 0.866082 0.624502 0.908152 0.726356 0.999499 0.969522 0.166621 0.11203 0.458421 0.770571
 0.0345678 0.900259 0.0766377 0.892703 0.749685 0.699663 0.553896 0.0148111 0.873471 0.863698 0.43959 0.243636 0.192125
 0.184911 0.116365 0.546452 0.166702 0.902927 0.265729 0.199871 0.080607 0.497961 0.441525 0.761042 0.702948 0.972435
 0.343261 0.447473 0.318871 0.731504 0.807301 0.0286925 0.81666 0.567394 0.494868 0.0569126 0.241459 0.567982 0.411521
 0.398649 0.856336 0.564759 0.235559 0.0664199 0.836829 0.326462 … 0.628911 0.0471175 0.600328 0.391617 0.726427 0.0038903
 0.570695 0.934198 0.23961 0.405866 0.766589 0.360281 0.53942 0.339671 0.780902 0.0209611 0.0289423 0.00133611 0.102266
 0.473447 0.169119 0.399808 0.532643 0.825839 0.513232 0.169403 0.748695 0.745113 0.0690881 0.807541 0.0278596 0.502701
 0.549272 0.72991 0.892347 0.706628 0.516569 0.388774 0.168778 0.542948 0.25892 0.483741 0.274832 0.732203 0.904545
 0.598189 0.805712 0.864001 0.551519 0.648825 0.344549 0.168836 0.697156 0.688419 0.653445 0.599199 0.822995 0.181469

julia>

julia> foodweb
15×15 Array{Float64,2}:
 0.586139 0.242526 0.175424 0.41908 0.608365 0.623958 0.985096 … 0.564946 0.563235 0.855666 0.160699 0.294043 0.439596
 0.606276 0.783888 0.187657 0.45819 0.382996 0.538697 0.416667 0.0788532 0.22072 0.237465 0.65115 0.263006 0.260589
 0.121644 0.74934 0.176507 0.159718 0.0899451 0.998951 0.98093 0.18824 0.990353 0.245849 0.211564 0.192811 0.419919
 0.254097 0.0542392 0.528426 0.738465 0.564184 0.163758 0.533865 0.278683 0.509338 0.357289 0.527181 0.495044 0.612462
 0.113537 0.0302919 0.361624 0.275809 0.186019 0.120429 0.0733641 0.484558 0.882517 0.613164 0.834181 0.981004 0.445259
 0.360844 0.0184298 0.734411 0.457512 0.790891 0.11065 0.962243 … 0.676564 0.240609 0.546232 0.760843 0.676749 0.938689
 0.429256 0.337486 0.589287 0.866082 0.624502 0.908152 0.726356 0.999499 0.969522 0.166621 0.11203 0.458421 0.770571
 0.0345678 0.900259 0.0766377 0.892703 0.749685 0.699663 0.553896 0.0148111 0.873471 0.863698 0.43959 0.243636 0.192125
 0.184911 0.116365 0.546452 0.166702 0.902927 0.265729 0.199871 0.080607 0.497961 0.441525 0.761042 0.702948 0.972435
 0.343261 0.447473 0.318871 0.731504 0.807301 0.0286925 0.81666 0.567394 0.494868 0.0569126 0.241459 0.567982 0.411521
 0.398649 0.856336 0.564759 0.235559 0.0664199 0.836829 0.326462 … 0.628911 0.0471175 0.600328 0.391617 0.726427 0.0038903
 0.570695 0.934198 0.23961 0.405866 0.766589 0.360281 0.53942 0.339671 0.780902 0.0209611 0.0289423 0.00133611 0.102266
 0.473447 0.169119 0.399808 0.532643 0.825839 0.513232 0.169403 0.748695 0.745113 0.0690881 0.807541 0.0278596 0.502701
 0.549272 0.72991 0.892347 0.706628 0.516569 0.388774 0.168778 0.542948 0.25892 0.483741 0.274832 0.732203 0.904545
 0.598189 0.805712 0.864001 0.551519 0.648825 0.344549 0.168836 0.697156 0.688419 0.653445 0.599199 0.822995 0.181469

julia> function create_trophic()
          trophic = copy(foodweb)

          trophic[plants+1:plants+animals,plants+1:plants+4] .= 0.0 # this is just to mimic my actual array
          trophic[1:plants,plants+7:plants+animals] .= 0.0 # this is just to mimic my actual array

          trophic[:,1:plants] .= 1.0

          for column in 1:plants+animals
              if all(trophic[:,column] .> 0.0)
                 trophic[:,column] .= 1.0 #indicates herbivory
              elseif all(trophic[1:plants,column] .> 0.0) && all(trophic[plants+1:end,column] .== 0.0)
                 trophic[1:plants,column] .= 4.0 #indicates carnivory
              elseif all(trophic[1:plants,column] .== 0.0) && all(trophic[plants+1:end,column] .> 0.0)
                 trophic[plants+1:end,column] .= 3.0 # indicates omnivory,
              end
          end
          return trophic
       end
create_trophic (generic function with 1 method)

julia>

julia> trophic = create_trophic()
15×15 Array{Float64,2}:
 1.0 1.0 1.0 1.0 1.0 4.0 4.0 4.0 4.0 1.0 1.0 0.0 0.0 0.0 0.0
 1.0 1.0 1.0 1.0 1.0 4.0 4.0 4.0 4.0 1.0 1.0 0.0 0.0 0.0 0.0
 1.0 1.0 1.0 1.0 1.0 4.0 4.0 4.0 4.0 1.0 1.0 0.0 0.0 0.0 0.0
 1.0 1.0 1.0 1.0 1.0 4.0 4.0 4.0 4.0 1.0 1.0 0.0 0.0 0.0 0.0
 1.0 1.0 1.0 1.0 1.0 4.0 4.0 4.0 4.0 1.0 1.0 0.0 0.0 0.0 0.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 3.0 3.0 3.0 3.0
 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 3.0 3.0 3.0 3.0

julia>       

```
