Применить функцию к случайной строке матрицы - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть матрица 5x5 M и функция f, которая работает с векторами. r ← ⊃?⍴M является индексом случайной строки M. Мне нужно вернуть модифицированную версию M без прямого назначения (это важно для более крупной программы), где f применяется только к r⌷M. Я делаю это, отображая строки M, возвращая f⍵, если индекс строки соответствует r, и просто , если это не так. Функция, которую я придумал:

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

Это работает, но не идеально. Мне не нравится часть r = M⍳⍵, потому что я ищу индекс в каждом цикле. Я думаю, что было бы более разумно работать вместо ⍳5, ссылаясь на каждую строку в терминах каждого в этом векторе. Я не могу заставить это работать.

Любая помощь, делающая мою работу менее уродливой, приветствуется.

1 Ответ

0 голосов
/ 28 апреля 2018

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
...