(KDB+;/q)获取矩阵的对角元素

(KDB+;/q)获取矩阵的对角元素,kdb,Kdb,我想得到矩阵的所有对角元素,单位为kdb+/q 例如 将返回1 5 9 我的想法是使用“.”来获取元素 q) A . 1 1 / one of the diagonal elements 5 q) 2 #' til 3 / indices 0 0 1 1 2 2 但我尝试了很多方法,但都无法使其工作。下面的代码返回矩阵的对角元素 (1 2 3; 4 5 6; 7 8 9) @' til 3 代码 在右侧生成连续列表0、1、2 通过在右侧应用相应的索引(@'副词),从左侧的每个列表中获取一个元

我想得到矩阵的所有对角元素,单位为kdb+/q

例如

将返回
1 5 9

我的想法是使用“.”来获取元素

q) A . 1 1 / one of the diagonal elements
5
q) 2 #' til 3 / indices
0 0
1 1
2 2

但我尝试了很多方法,但都无法使其工作。

下面的代码返回矩阵的对角元素

(1 2 3; 4 5 6; 7 8 9) @' til 3
代码

  • 在右侧生成连续列表
    0、1、2
  • 通过在右侧应用相应的索引(
    @'
    副词),从左侧的每个列表中获取一个元素
  • 一般形式如下所示:

    getDiagonal: {x@'til count x};
    getDiagonal (1 2 3; 4 5 6; 7 8 9)
    

    下面的代码返回矩阵的对角元素

    (1 2 3; 4 5 6; 7 8 9) @' til 3
    
    代码

  • 在右侧生成连续列表
    0、1、2
  • 通过在右侧应用相应的索引(
    @'
    副词),从左侧的每个列表中获取一个元素
  • 一般形式如下所示:

    getDiagonal: {x@'til count x};
    getDiagonal (1 2 3; 4 5 6; 7 8 9)