我很惊讶地发现R的回收不适用于更高的尺寸:
> str(Z)
num [1:5, 1:100, 1:10] 1.02 0.989 2.555 1.167 -0.835 ...
> str(w)
num [1:5, 1:100] 1.43 7.84 6.13 2.91 2.8 ...
> Z + w
Error in Z + w : non-conformable arrays
而我预计2d矩阵w
将沿Z
的第3维回收。我使用矩阵w
获得了相同的错误,其维度类似于Z
的最后2个(与numpy的广播规则一样)。我想当回收R会简单地按照尺寸(C样式)的顺序压扁每个数组并添加它们,然后重新整形它们,这将在多个维度中起作用。是否有正确的方法来回收像我正在尝试的矩阵?我想我可以通过操纵昏暗的属性来实现扁平化和重塑自己,但显然我不愿意自己做这项工作。
语言定义有这一行:“也就是说,如果你将c(1,2,3)添加到六元素向量中,那么你真的会添加c(1,2,3,1,2, 3)。”任何看过引擎盖的人都能告诉我R是否真的从更短的时间创建一个新的更长的向量,以符合另一个操作数,然后应用运算符?我一直认为回收利用更节省空间。如果没有,那么我也可以通过从矩阵创建一个三维数组来实现更高维度的回收。我想有一些用于多路阵列/张量的包,但我更喜欢使用base。
答案 0 :(得分:0)