【问题标题】:Perl PDL glue not working?Perl PDL 胶水不起作用?
【发布时间】:2012-01-24 15:12:20
【问题描述】:

我是 PDL 新手,请原谅我的基本问题:

我有两个简单的 pdl 对象

pdl> p $a                                                                                                                    

[
  [1 2 3]
  [4 5 6]
]

pdl> p $c                                                                                                                    
[6 6 6]

我将它们粘在一起并返回我所期望的

pdl> p glue $b, $c                                                                                                           

 [
  [1 2 3]
  [4 5 6]
 ]
 [6 6 6]

但是,当我将胶水分配给变量 $z 时,胶水不会粘住。

 $z = glue $b, $c  


 pdl> p $z                                                                                                                    

 [
  [1 2 3]
  [4 5 6]
 ]

我错过了什么?

我的最终目标是通过使用胶水、cat 或 append 循环文件来构建一个大谜题。

【问题讨论】:

  • 首先,对于您的实际用例,rcols 会解决您的问题吗?其次,如果你构建一个 piddles 数组,例如 push @piddle_lines, $piddle_of_line,然后将它们全部放在一起,它会更快(并且可能对其他 Perl 程序员来说更清楚):$data_piddle = cat(@piddle_lines)
  • 您可以使用helpapropos 命令从perldlpdl2 shell 搜索和显示PDL 文档。这些可以缩写为???' respectively. E.g., help glue` 将为您提供glue 的文档。

标签: perl pdl


【解决方案1】:

这不是您使用glue() 的方式。 From the docs:

$c = $a->胶水(,$b,...)

我相信您必须执行$z = $b->glue(1,$c) 之类的操作。不过,我对<dim> 参数有点不确定;尝试使用它,看看会发生什么。

编辑:是的,你会使用<dim>1

pdl> $a = pdl [[1,2,3],[4,5,6]];

pdl> p $a

[
 [1 2 3]
 [4 5 6]
]

pdl> $c = pdl [6,6,6];

pdl> p $c
[6 6 6]
pdl> $z = $a->glue(1,$c);

pdl> p $z

[
 [1 2 3]
 [4 5 6]
 [6 6 6]
]

【讨论】:

    猜你喜欢
    • 2012-02-19
    • 2015-09-11
    • 2017-09-06
    • 2016-09-16
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多