Использовать допинговый вектор для доступа к произвольным осевым срезам многомерного массива?
Я строю набор функций для работы сструктура данных многомерного массива и я хочу быть в состоянии определить произвольноеломтики массивов, так что я могу реализовать обобщенное внутреннее произведение двух произвольных матриц (иначеТензор или жеn-d массивы).
Документ APL, который я прочитал (я, честно говоря, не могу найти, который - я читал так много), определяет матричный продукт в левой матрицеX
с размерамиA;B;C;D;E;F
и правая матрицаY
с размерамиG;H;I;J;K
гдеF==G
как
Z <- X +.× Y
Z[A;B;C;D;E;H;I;J;K] <- +/ X[A;B;C;D;E;*] × Y[*;H;I;J;K]
где+/
являетсясуммаи × применяет поэлементно к двум векторам одинаковой длины.
Таким образом, мне нужны кусочки "ряда" слева и кусочки "столбца" справа. Конечно, я могу взять транспозицию, а затем срез «строки», чтобы имитировать срез «столбца», но я бы предпочел сделать это более элегантно.
Статья Википедии онарезка приводит к заглушке одопинг векторы это, кажется, чудодейственное лекарство, которое я ищу, но там не так много, чтобы продолжать.
Как мне использовать допинг-вектор для реализации произвольной нарезки?
(Много позже я заметилСтрока массива который имеет некоторые детали.)