我有一个代表向量列表的二维数组“v”我有一个代表矩阵列表的三维数组“a”
ILArray v = counter(2, 3);
ILArray a = counter(2, 3, 3);
现在我想取两者的子数组并进行矩阵乘法:
ILArray av = multiply(a[1,full,full], v[1,full]);
它会抱怨尺寸不匹配,这是因为a[1,full,full]
is(1,3,3)
和 of v[1,full]
is的尺寸(1,3)
。换句话说,子数组包含一个单一维度。在 matlab 中,我可以使用squeeze() 删除这些单一维度。但是我怎样才能在 ILNumerics 中做到这一点?
我刚刚发现,如果单例维度在尾随,那么它们会被 ILNumerics 自动删除,所以这是可行的:
ILArray v = counter(3, 2);
ILArray a = counter(3, 3, 2);
ILArray av = multiply(a[full,full, 1], v[full, 1]);
此外,a[full,full,1]
有维度(3,3)
而不是(3,3,1)
。
这是否意味着 ILNumerics 不支持非尾随单例维度?换句话说,在计算中不支持跨步数组,而只支持连续数组?这至少可以说是相当严格的。
谢谢, 卢克