如何用另一个Mat的2个cols索引垫子......?

时间:2015-01-23 10:37:19

标签: apl dyalog

我有一个名单(文本矩阵)nl43和多个索引(在gr43中),并希望通过gr43的第4和第5列分配元素索引到2个变量,AB。 访问单个列时,这将是nl43[gr43[;Column];],但我的手指只是拒绝复制&粘贴该语句进行第二次分配,因为我的直觉暗示必须有一种更简单的方法; - )

2 个答案:

答案 0 :(得分:0)

好的,所以我终于找到了(A B)←⊂[1 3]nl43[gr43[;4 5;]并且对自己感到非常失望,因为我之前从未想过这一点。既然我自己回答了这个问题,我认为那里的细化空间不大?

嗯,有一种嵌套方式可以做到这一点:(A B)←(⊂nl43){⍺[gr43[;⍵];]}¨4 5 我甚至犹豫着看着它,因为它感觉太&"笨拙"。但从表现来看,这是一个明显的赢家:.234秒与.64 !!

评论? ; - )

答案 1 :(得分:0)

类似
  'abcdefghijklmnopqrstuvwxyz'[3 3 reshape 3 1 20 18 1 20 6 1 20] // []A instead of abcde... in Dyalog
cat
rat
fat
  // result is a matrix

我会直观地期望索引的嵌套参数也能正常工作。

  'abcdefghijklmnopqrstuvwxyz'[(3 1 20) (18 1 20) (6 1 20)]
 cat  rat  fat
  // result is a vector of vectors
唉,这还没有,或者还没有实施。我过去曾使用类似的dfn方法进行索引,但除了向量之外从未使用过任何东西。有趣的是这种扩展索引如何对矩阵和高维数组起作用。