作为比喻,考虑图像中像素的颜色。假设我们有一个三维数组,表示沿维3堆叠的矩阵中的图像的红色,绿色和蓝色通道。从整个图像中“减去颜色”(由长度为3的矢量表示)的最简单方法是,从红色通道中减去颜色的红色分量,从绿色通道中减去绿色分量,从蓝色通道中减去蓝色分量的感觉?从“三维向量矩阵”中的每个元素中减去一个向量
由于图像A和色彩V,我们可以这样做:
for(i : 1:3){
A[,,i] <- A[,,i] - v[i]
}
或
A - array(rep(v,each=length(A[,,1])),dim(A))
什么是做到这一点的最好方法是什么?如果有喜欢row
和col
但对于第三维的功能(比如level
),那么我可以简单地做
A - v[level(A)]
有这样的功能?
见'slice.index'; 'A - v [slice.index(A,3)]' –
@alexis_laz完美。你可以把这个答案? – Museful