You can read delimited data directly into PDLs using the
rcols function from the
PDL::IO::Misc module. For example, if you have the following data in a file named
table.csv
0.1,0.2,0.3,0.4,0.5
1,2,3,4,5
1.1,2.2,3.3,4.4,5.5
10,20,30,40,50
100,200,300,400,500
Then you can read it into a 2D PDL as follows:
#!/usr/bin/env perl
use strict;
use warnings;
use PDL;
use PDL::IO::Misc;
my $x = pdl( rcols 'table.csv', { COLSEP => ',' } );
print $x;
exit;
and the output will be:
[
[0.1 1 1.1 10 100]
[0.2 2 2.2 20 200]
[0.3 3 3.3 30 300]
[0.4 4 4.4 40 400]
[0.5 5 5.5 50 500]
]