#!/usr/bin/perl use warnings; use strict; use PDL; my $p = pdl( [0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 1, 2], [0, 1, 2], [6, 7, 8], [0, 1, 10]); my $u = $p->uniqvec; my @r; for my $i (0 .. $u->dim(1) - 1) { my $vec = $u->slice(':', $i); my $matches = $p == $vec; push @r, [ $matches->andover->sum ]; } print $u->glue(0, pdl(@r));