2011-03-07 83 views
3

我得到的最接近的是像如何迭代Perl PDL piddle?

use PDL; 
my $u = pdl [1,2,3,4]; 
my $dim = 4; 
for(my $i=0; $i<$dim; $i++) 
{ 
    print $u->flat->index($i), "\n"; 
} 

而且,我可以轉換[1,2,3,4]到小罐$u,我可以拿回從$u列表(或矩陣列表的列表)?

回答

3

與和尚的智慧,我找到了答案: http://perlmonks.org/index.pl?node_id=892201

想我會在這裏分享它在我原來的問題。 上面的代碼可以改寫爲:

use PDL; 
my $u = pdl [1,2,3,4]; 
foreach ($u->dog) 
{ 
    print $_, "\n"; 
} 

智慧想出了一個聲明,只dog()作品小piddles(對象)。

3

除了使用狗,這裏有兩個其他的選項爲您的1d pdl使用索引和列表。還有index2d

use PDL; 
my $a = pdl(1 .. 4); 
#use index 
print $a->index($_), "\n" foreach (0 .. $a->nelem-1); 
#use list 
print $_ . "\n" foreach ($a->list); 
+1

我會使用'$ a-> at($ _)'或'$ a-> sclr($ _)'。 'index'方法返回一個單項PDL對象,而'at'和'sclr'返回一個Perl標量。此外,'sclr'比'at'有點寬容。 – 2014-06-10 21:54:56