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