You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

APL中矩阵筛选、分组与排序的惯用实现方法问询

简洁优雅的APL实现方案

针对你的需求,惯用的APL实现可以充分利用⌸(键值分组)操作符的函数式用法,代码非常简洁:

{⍵[⍋⍵[;3];2]}⌸M

代码解释

  1. ⌸ 分组:按输入矩阵M的第一列值自动分组,每个分组会将对应行的子数组传入右侧的匿名函数。
  2. 分组内排序并提取列:
    • ⍋⍵[;3]:计算当前分组子数组第三列的升序排序索引
    • ⍵[⍋⍵[;3];2]:用排序索引重排子数组的行,然后提取第二列,得到排序后的字符向量

测试你的示例输入矩阵,运行上述代码会直接输出('ABCD' 'BFDE'),与期望结果一致。

关于APL学习资料

推荐几个系统的学习资源:

  • 《Mastering Dyalog APL》:官方权威手册,覆盖从基础到高级的所有APL特性与惯用写法
  • Dyalog官方入门教程:循序渐进讲解核心概念,搭配实例练习
  • APL Wiki:社区维护的知识库,包含大量惯用技巧和场景化示例

内容的提问来源于stack exchange,提问作者Marco Pegoraro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 22:30:00