Использовать допинговый вектор для доступа к произвольным осевым срезам многомерного массива?

Я строю набор функций для работы сструктура данных многомерного массива и я хочу быть в состоянии определить произвольноеломтики массивов, так что я могу реализовать обобщенное внутреннее произведение двух произвольных матриц (иначеТензор или же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]

где+/ являетсясуммаи × применяет поэлементно к двум векторам одинаковой длины.

Таким образом, мне нужны кусочки "ряда" слева и кусочки "столбца" справа. Конечно, я могу взять транспозицию, а затем срез «строки», чтобы имитировать срез «столбца», но я бы предпочел сделать это более элегантно.

Статья Википедии онарезка приводит к заглушке одопинг векторы это, кажется, чудодейственное лекарство, которое я ищу, но там не так много, чтобы продолжать.

Как мне использовать допинг-вектор для реализации произвольной нарезки?

(Много позже я заметилСтрока массива который имеет некоторые детали.)

Ответы на вопрос(1)

Ваш ответ на вопрос