将函数应用于矩阵的随机行

时间:2018-04-28 10:15:08

标签: apl dyalog

我有一个5x5矩阵M和一个对向量进行操作的函数fr ← ⊃?⍴M是随机行M的索引。我需要返回修改后的M版本而不进行直接分配(对于较大的程序而言非常重要),其中f仅适用于r⌷M。我是通过映射M行来执行此操作,如果行索引与r匹配则返回f⍵,如果不匹配则返回&# 39;吨。我想出的功能是:

({f(⍣(r = M⍳⍵))⍵}⍤1) M

它有效,但它并不理想。我不喜欢r = M⍳⍵部分,因为我在每个周期都在搜索的索引。我认为在⍳5之间进行操作更有意义,在此向量中以每个的形式引用每一行。我似乎无法让这个工作起作用。

任何使我的功能不那么难看的帮助表示赞赏。

1 个答案:

答案 0 :(得分:4)

f@r⊢M

示例代码:

M←5 5⍴⍳25
f←-
r←⊃?⍴M
⎕←f@r⊢M

示例结果:

 1  2  3  4   5
¯6 ¯7 ¯8 ¯9 ¯10
11 12 13 14  15
16 17 18 19  20
21 22 23 24  25