2
我很驚訝發現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
,而我預計二維矩陣w
沿的Z
第三個維度進行回收。我得到了與矩陣w
相同的錯誤,尺寸像Z
的最後2個(與numpy的廣播規則相同)。我認爲在回收利用時R會簡單地將每個數組按照尺寸順序(C風格)扁平化並添加它們,然後將它們重新整形,這將在很多維度上起作用。有沒有正確的方式來回收像我想要的矩陣?我想我可以通過操縱暗淡的屬性來做扁平化和重塑自己,但顯然不希望自己做這項工作。
語言定義有這樣一行:「也就是說,例如,如果您將c(1,2,3)添加到六元素向量,那麼您將真的添加c(1,2,3,1,2) ,3)。「任何一個看過引擎蓋的人都會告訴我R是不是從字面上創建了一個新的更長的向量,來符合另一個操作數,然後應用運算符?我一直認爲回收更節省空間。如果不是,那麼我可能會通過從矩陣創建一個3維陣列來實現更高維度的回收。我想有一些用於多路陣列/張量的軟件包,但我更喜歡使用base。