使用涂料矢量来访问多维数组的任意轴向切片?

时间:2015-05-23 07:09:34

标签: c multidimensional-array slice matrix-multiplication transpose

我正在构建一套函数来使用multidimensional-array data structure,我希望能够定义数组的任意切片,这样我就可以实现两个广义的内积任意矩阵(又名张量 nd数组)。

我读过的一篇APL论文(老实说,我找不到哪篇 - 我读过这么多篇幅)定义左矩阵X上的矩阵乘积,其维度为A;B;C;D;E;F和右矩阵{ {1}}尺寸为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] 之和,而×将逐个元素应用于两个相同长度的向量。

所以我需要左边的“行”切片和右边的“列”切片。我当然可以使用转置,然后使用“行”切片来模拟“列”切片,但我宁愿更优雅地做。

维基百科关于slicing的文章引出了关于dope vectors的存根,这似乎是我正在寻找的奇迹治疗,但是没有太多可以继续下去。

如何使用涂料矢量来实现任意切片?

(很久以后我注意到Stride of an array有一些细节。)

0 个答案:

没有答案