Works for me with the latest git:
PDL> use Storable;

   PDL> use PDL::IO::Storable;

   PDL> my $a = pdl(1984,325,1.4504,23.9576,200.4562,30456,-2.3451,22.0979);

   PDL> my $row = ones(458)->dummy * $a;

   PDL> my $i = ones(2889)->dummy->dummy * $row;

   PDL> store($i,'pdl.dat')

   PDL>  $j = retrieve('pdl.dat')

   PDL> help 'vars'
   PDL variables in package main::

   Name         Type   Dimension       Flow  State          Mem
   ----------------------------------------------------------------
   $j           Double D [8,458,2889]         P           80.76Mb

   PDL> p sum($i-$j)
   0

   PDL> quit

I don't have PDL-2.4.6 to test at the moment.

--Chris

On 6/20/2010 3:32 PM, P Kishor wrote:
> So, with the help of the syntax that Daniel suggested, and
> PDL::IO::Storable (based on an earlier suggestion from Christian
> Soeller) I made the following piddle
>
>      my $a = pdl(1984,325,1.4504,23.9576,200.4562,30456,-2.3451,22.0979);
>      my $row = ones(4587)->dummy * $a;
>      my $i = ones(2889)->dummy->dummy * $row;
>      store $i, 'pdl.dat';
>
> The above resulted in a nice 848_118_001 (848 MB) file. Then I tried
> to retrieve it
>
>      my $j = retrieve 'pdl.dat';
>      print $j->info . "\n";
>
> I got the following output
>
>       PDL: Double D [8,4587,2889]
>       
> But I also got the following errors --
>
> Error: File Core.pm; Line 936: Use of uninitialized value $dim in
> numeric lt (<)<DATA>  line 206.
>
> Error: File Core.pm; Line 942: Use of uninitialized value $dim in
> repeat (x)<DATA>  line 206.
>
> Error: File Core.pm; Line 943: Use of uninitialized value $dim in
> subtraction (-)<DATA>  line 206.
>
> Error: File Core.pm; Line 939: Use of uninitialized value $dim in
> numeric lt (<)<DATA>  line 206.
>
>
> The said lines in Core.pm being
>
> 934 sub PDL::dummy($$;$) {
> 935    my ($pdl,$dim,$size) = @_;
> 936    $dim = $pdl->getndims+1+$dim if $dim<  0;
> 937    $size = 1 unless defined($size);
> 938
> 939    barf("For safety,<pos>  <  -(dims+1) forbidden in dummy.  min="
> 940    . -($pdl->getndims+1).", pos=". ($dim-1-$pdl->getndims) ) if($dim<0);
> 941
> 942    my($s) = ',' x ( ($dim>  $pdl->getndims) ? ($pdl->getndims) : ($dim) );
> 943    $s .= '*,' x ( $dim-$pdl->getndims-1 );
> 944    $s .= "*$size";
> 945
> 946    $pdl->slice($s);
> 947 }
>
>
>
>
>
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 9.0.829 / Virus Database: 271.1.1/2951 - Release Date: 06/20/10 
> 02:37:00
>


_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to