# Subtracting row minima

**URL:** <https://discourse.julialang.org/t/subtracting-row-minima/22508>\
**Category:** Performance\
**Created:** [March 29, 2019, 4:05pm UTC](https://discourse.julialang.org/t/subtracting-row-minima/22508 "2019-03-29T16:05:33Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![Seif\_Shebl](https://avatars.discourse-cdn.com/v4/letter/s/eada6e/32.png) [@Seif\_Shebl](https://discourse.julialang.org/u/Seif_Shebl)\
**Post date:** [March 30, 2019, 1:13am UTC](https://discourse.julialang.org/t/subtracting-row-minima/22508/8 "2019-03-30T01:13:37Z")

</div>

If you want it be super fast, write a single nested-loop for both operations like this:

```julia
function subMins!(mat)
    mcols = minimum(mat, dims=1)
    mrows = minimum(mat, dims=2)
    for j = 1:size(mat,2), i = 1:size(mat,1)
        mat[i,j] -= mrows[i] + mcols[j] 
    end  
end 

using BenchmarkTools
mat = rand(UInt16, 16000, 16000)
@btime subMins!($mat)
  290.291 ms (32 allocations: 63.41 KiB)

```

---

_[View the full topic](https://discourse.julialang.org/t/subtracting-row-minima/22508)._
