我得到的最接近的是像如何迭代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
列表(或矩陣列表的列表)?
我得到的最接近的是像如何迭代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
列表(或矩陣列表的列表)?
與和尚的智慧,我找到了答案: http://perlmonks.org/index.pl?node_id=892201
想我會在這裏分享它在我原來的問題。 上面的代碼可以改寫爲:
use PDL;
my $u = pdl [1,2,3,4];
foreach ($u->dog)
{
print $_, "\n";
}
的智慧想出了一個聲明,只dog()
作品小piddles(對象)。
除了使用狗,這裏有兩個其他的選項爲您的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);
我會使用'$ a-> at($ _)'或'$ a-> sclr($ _)'。 'index'方法返回一個單項PDL對象,而'at'和'sclr'返回一個Perl標量。此外,'sclr'比'at'有點寬容。 – 2014-06-10 21:54:56