我有2个与比较Dyalog APL中的字符 vector 有关的问题。
以下代码将一个一个比较字符 vector :

a←'ATCG'
b←'GTCA'
a=b
  • 为了加快速度(在2个 vector 的情况下为,以及将多个 vector 与单个 vector 进行比较),我应该将字符 vector 转换为数值 vector ,还是在APL中无所谓(类似于在C中比较字符)?
  • 我正在比较DNA序列(可能只包含ATCG字母中的字母)。我可以采取什么措施来加快对此类媒介的各种操作?
  • 最佳答案

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

    尝试

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

    确保最大值小于128。

    要检查是否具有最小的整数表示形式,请使用[] dr函数。 [] dr a应返回82,表示-128
    Dyalog APL将自动转换为最小的整数宽度。

    关于vector - Dyalog中字符串操作的性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25160519/

    10-11 23:12
    查看更多