У меня есть (текст список имен-матрица) nl43
и несколько индексов в него (в gr43
) и хотел бы присвоить индекс элементов по 4-м и 5-м columnn от gr43
до 2 переменных, A
и B
. При доступе к одной колонке, это было бы nl43[gr43[;Column];]
, но мои пальцы просто отказались копировать & вставить это заявление, чтобы сделать 2-ое задание, потому что мой инстинкт предположил, что должно быть проще ;-)Как индексировать коврик с 2 cols от другого Mat ...?
ответ
Итак, Наконец я нашел (A B)←⊂[1 3]nl43[gr43[;4 5;]
и, к сожалению, разочарован сам собой, поскольку мне никогда не приходило в голову передумать этот бит раньше. Теперь, когда я сам ответил на этот вопрос, я предполагаю, что нет места для уточнения ???
Хм, есть вложенный способ для этого: (A B)←(⊂nl43){⍺[gr43[;⍵];]}¨4 5
Я не решался даже взглянуть на него, потому что он чувствовал себя слишком «неуклюжим». Но результативность - это явный победитель: .234 секунды против .64 !!
Комментарии? ;-)
В качестве аналога к чему-то вроде
'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 для индексации в прошлом, но никогда ни на чем, кроме вектора. Интересно, как эта расширенная индексация могла бы работать на матрицах и многомерных массивах.
Это можно сделать с помощью индексации (в Dialog) 14, IIRC): '(⊂3 1 20) (⊂18 1 20) (⊂6 1 20) ⌷¨⊂'abcdefghijklmnopqrstuvwxyz'' – MBaas
Будет ли хорошее решение для индексирования Squad для проблемы Sudoku, где у вас есть 9 x 9 и хотите разбить его на матрицу 3 x 3 из 3 x 3 матриц? i.e. 'SudokuMat [(1 2 3) (4 5 6) (7 8 9); (1 2 3) (4 5 6) (7 8 9)] ' – Lobachevsky
Хм,« хорошая команда »- это сложная задача, я понятия не имею, извините. Я бы сделал '↑ (⊂1 0 0 1 0 0 1 0 0) ⊂ [1] ¨1 0 0 1 0 0 1 0 0⊂SudokuMat'' ⍝ ⎕ML = 1' – MBaas
Я изначально хотел опубликовать это как реальный вопрос (после этого предложения от моего инстинкта ...). Но потом я подумал, что некоторые RTFM помогут, и это так. Тем не менее, процесс может быть интересным, и, поскольку ответы на явные ответы очень приветствуются, я подумал, что это может быть хороший способ получить некоторые действия для APL-тега :-) – MBaas