如何迭代Perl PDL小提琴?

时间:2011-03-07 10:44:44

标签: perl pdl

我最接近的是

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]转换为p $u,我可以从$u获取列表(或矩阵列表列表)吗?

2 个答案:

答案 0 :(得分:4)

凭借僧侣的智慧,我找到了答案: http://perlmonks.org/index.pl?node_id=892201

以为我会在原来的问题中与大家分享。 上面的代码可以改写为:

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

智慧附带免责声明,dog()仅适用于小型piddles(对象)。

答案 1 :(得分:4)

除了使用dog之外,这里还有两个使用索引和列表的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);