问题标签 [pdl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1761 浏览

multithreading - 如何使用线程来替换 perl/pdl 中的循环子例程

我有一个非常好的 perl 子例程,作为 perl 模块的一部分编写。在不涉及太多细节的情况下,它将一个字符串和一个简短列表作为参数(通常取自终端)并输出一个值(现在,总是一个浮点数,但可能并非总是如此。)

现在,我的论点的列表部分采用两个值,例如 (val1,val2)。我使用 for 循环将子例程的输出保存为 val1 和 val2 的数百个不同值。每次迭代几乎需要一秒钟才能完成——因此完成整个过程需要几个小时。

我最近读到了一个神秘的(对我而言)名为“线程”的计算工具,它显然可以用极快的执行时间代替 for 循环。我一直无法理解这些是什么和做什么,但我想它们与并行计算有关(我希望我的模块尽可能针对并行处理器进行优化。)

如果我将要传递给 val1 的所有值保存为一个列表,比如 @val1 和 val2 相同,我如何使用这些“线程”为 val1 和 val2 的元素的每个组合执行我的子例程?此外,了解如何将此过程推广到也采用 val3、val4 等的子例程会很有帮助。

0 投票
2 回答
372 浏览

perl - 如何在通过引用传递的子例程中使用 PDL rcols?

具体来说,我想将 rcols 与 PERLCOLS 选项一起使用。

这是我想要做的:

如果我使用\@array,我可以这样做,但为了向后兼容,我不想这样做。这是我使用数组引用引用的方法:

但是,我不知道如何制作一个以数组 ref 作为参数的子例程,而无需说类似@$aref = @{$read[-1]}的内容,因为它会单独复制每个元素。

PS:阅读PDL::IO::Misc 文档,似乎 perl 数组应该是,$read[0]但事实并非如此。

PERLCOLS - 一个列号数组,将被读入 perl 数组而不是 piddles。任何未在要读取的显式列列表中指定的列都将在显式列之后返回。(默认 B)。

我正在使用 PDL v2.4.4_05 和为 x86_64-linux-thread-multi 构建的 Perl v5.10.0

0 投票
2 回答
407 浏览

perl - pdl2(或Devel::REPL)中是否有与perl调试器'x'等效的东西?

我还使用pdl2PDLshell)作为我的默认 Perl 交互式 shell(它加载了所有不错的插件Devel::REPL)。但我错过了x翻斗打印别名。p对 piddles 很好,但它不适用于普通的数组引用或哈希引用。我已经加载Data::Dumper了,但它缺乏一种控制深度的简单方法,我喜欢你可以快速设置深度限制的方式x,例如x 2 $deep_datastruct复杂的数据结构。但是用Data::Dumper的过程比较麻烦:

在 Perl调试器中,您可以直接实现相同的目的x 1 $c。有没有pdl2类似的东西这么简洁?

[更新] 并与这个问题相关:是否pdl2Devel::REPL具有 Perl 调试器命令my?或者应该创建一个模块PadWalker并导出它们?我想使用真正的 REPL 而不是 Perl 调试器作为交互式 shell,但是 Perl 调试器仍然有一些我不知道如何处理的重要事情Devel::REPLor pdl2

例如查看所有变量(pdl2仅显示 piddles):

顺便说一句,是否有人知道一个Devel::REPL用于列出所有正在使用的变量的插件(例如y在调试器中,但只有名称,而不是值)然后有一个x-like 来转储想要的变量?

0 投票
2 回答
1727 浏览

perl - 如何遍历 Perl PDL piddle?

我最接近的是

另外,因为我可以转换[1,2,3,4]为 piddle $u,我可以从 中取回一个列表(或矩阵的列表列表)$u吗?

0 投票
1 回答
247 浏览

perl - Perl Inline::C 在失败时返回 pdl 或 0

我正在构建一个连接到相机、拍照并将数据读入 piddle 的模块。所有这些都发生在一个 Inline::C 命令中。使用PDL 文档中的过程,我可以创建pdl *并返回它。但是相机可能无法拍照,在这种情况下我想0按照通常的约定返回my $pic_pdl = $Camera->TakePicture or die "Failed to take image"。这似乎意味着我将需要使用该Inline_Stack_Push机制,但我不确定如何正确地pdl *SV*. 如果可能的话,我也想设置$!错误代码。这可以在 Inline 中完成吗?

0 投票
2 回答
365 浏览

perl - 存储具有 PDL 作为属性的 Moose 对象

我是 Moose 的新手,在使用 PDL 作为属性遇到障碍之前做得很好。我希望能够将对象写入文件(我一直在使用use MooseX::Storage; with Storage('io' => 'StorableFile');,并且该对象具有 aPDL作为属性。PDL::IO::Storable提供了以这种方式使用的必要方法Storable,但是我不知道如何在驼鹿。

这是一个例子,它有点长,我知道,但它是尽可能少的:

我想我可能必须创建一个 PDL 类型,甚至可能将 PDL 包装到某些东西中(使用MooseX::NonMoose::InsideOut),但也许有人可以将我从中拯救出来(或者如果是的话,可以为我指明正确的道路)。

0 投票
4 回答
244 浏览

perl - 对存储在哈希中的 AoA 进行操作。PDL 与无 PDL

我有一个 AoA 的哈希值:

我需要按如下方式紧缩:

计算两个数组之间的加权平方差。由于我的哈希很大,我希望 PDL 有助于加快计算速度,但出于某种原因它没有。我还是 PDL 的新手,所以我可能搞砸了。下面带有 PDL 的脚本要慢约 10 倍。描述:以下两个脚本是我试图简单地表示我的程序中发生的事情。我将一些参考值读入散列,然后我将观察结果(动态拉入散列)与这些值进行了多次比较,并具有一定的权重。在脚本中,我将参考数组、权重和观察数组设置为任意固定值,但在运行时并非如此。

这里有两个没有 PDL 和有 PDL 的简单脚本:

没有 PDL

带 PDL

0 投票
1 回答
127 浏览

perl - 如何在 pdl2 shell 中添加注释行

我正在使用 pdl2,交互式 perl pdl shell,我想在行中添加注释以记录下一个代码行,以便稍后查看我的交互式会话。

是否可以在 pdl2 shell 中添加注释?

PS:声望1500的人可以加pdl2标签吗?

[更新]

好的,'#' 确实是我想的评论符号,但似乎你不能用 # 开始一行,除非你之前放了一个 sp (或类似的东西)。?!这是一个“功能”吗?

0 投票
2 回答
296 浏览

perl - 我可以从 Perl pdl2 shell 中检索命令的完整历史记录(如 bash 中的历史记录)吗?

我正在使用 pdl2 shell,如何列出我的所有命令历史记录?

0 投票
5 回答
738 浏览

perl - 如何使用 pdl 创建序列?

我试图用 pdl 将我的部分 R 代码翻译成 perl,我想知道 pdl 是否有任何用于创建序列的语法(除了琐碎的 my $xx=pdl(1..20))

比如有一个向量 ['a','b'] rep 20 => a,b,a,b,a,b.... 20 次? [编辑]:基本的重复可以用普通的 Perl 重复字符串x运算符来完成,但我正在寻找 R 中的 rep() 和 seq() 之类的东西: