Dyalog中字符串操作的性能

时间:2014-08-06 12:32:26

标签: vector comparison apl dyalog

我有两个与Dyalog APL中的角色向量进行比较有关的问题。 以下代码将逐个比较字符向量:

a←'ATCG'
b←'GTCA'
a=b
  • 为了加速(在2个向量的情况下,以及在将多个向量与单个向量进行比较的情况下),我应该将字符向量转换为数字向量还是它赢了&# 39;在APL中是否重要(类似于比较C中的字符)?
  • 我正在比较DNA序列(可能只包含ATCG字母表中的字母)。有什么办法可以加快对这些载体的各种操作吗?

1 个答案:

答案 0 :(得分:1)

有趣的是,在我的(旧版)Dyalog APL上,将字符转换为小整数实际上要快25%。这可能是在最近的版本中加速的。

尝试

a <- []av iota 'ATCG'   // sorry, no apl characters
b <- []av iota 'GTCA'
a = b

确保最大值小于128。

要检查您是否具有尽可能小的整数表示,请使用[] dr函数。 [] dr a应返回82表示整数-128&lt; = x&lt; = 127。

Dyalog APL将自动转换为尽可能低的整数宽度。