in reply to Counting PDL vectors in a PDL matrix

To get the list of unique vectors, use uniqvec.

To get the counts, I had to iterate over the lines. There might be a better solution, I'm not a PDL expert. The resulting piddle has the count as the last element:

#!/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));
Output:
[ [ 0 1 2 3] [ 0 1 10 1] [ 3 4 5 1] [ 6 7 8 2] ]
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,