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

如何在Dyalog APL中对矩阵的每一行元素进行排序?

对APL矩阵每行元素排序的方法

你已经找到了关键的grade矩阵,接下来只需要用它来索引原矩阵的每行就能得到排序结果,具体步骤如下:

  1. 先定义原矩阵:

    M ← 3 3 rho 2 3 1 4 5 7 1 9 8
    
  2. 生成每行的升序grade矩阵(你已经得到的结果):
    用⍤1指定按行计算grade,写法更简洁:

    G ← ⍋⍤1 M  ⍝ 结果就是3 3 rho 3 2 1 1 2 3 1 3 2
    
  3. 用grade矩阵索引原矩阵,得到每行排序后的结果:
    用方括号索引或者⌷操作符都可以,两种写法等价:

    M[;G]  ⍝ 直接索引,更直观
    ⍝ 或者用⌷操作符指定轴:M ⌷[1] G
    

    运行后就能得到目标矩阵3 3 rho 1 2 3 4 5 7 1 8 9

关键逻辑说明

  • ⍋是升序grade函数,返回元素从小到大对应的原位置索引;如果要降序排序,换成⍒即可
  • ⍤1表示对每行单独执行操作(轴1对应列方向,即每行内部)
  • M[;G]的索引语法中,;代表保留所有行,G的每行对应原矩阵该行的元素索引顺序,从而实现每行内的排序

内容的提问来源于stack exchange,提问作者Kuushu Enshin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:12:40