use strict; use warinings; use PDL; use PDL::NiceSlice; sub submatrix_sum { my $m = pdl @_; $m->range(ndcoords($m(1:,1:)), 2)->reorder(2, 3, 0, 1) ->clump(2)->sumover; } #### sub submatrix_sum { my $w = shift; my $h = shift; my $m = pdl @_; $m->range(ndcoords($m($w - 1:, $h - 1:), [$w, $h])->reorder(2, 3, 0, 1) ->clump(2)->sumover; }