2016-08-11 56 views
3

在Julia中,有沒有一種很好的方法來「選擇循環任意維度」d?例如,我想的擴散過濾器應用到2D x我想要做選擇任意維度進行過濾?

for j = 1:size(x,2) 
    for i = 2:size(x,1)-1 
    x2[i,j] = x[i-1,j] - 2x[i,j] + x[i+1,j] 
    end 
end 

但是我想要寫的函數diffFilter(x2,x,d)其中x可以是任意的尺寸數組和d是任何尺寸大於ndims(x)以下,並沿着維度d應用此x[i-1] + 2x[i] - x[i+1]過濾器(分配爲x2)。任何想法如何進行索引,以便我可以使用d使該循環的特殊部分成爲d th索引?

回答

1

標準庫函數mapslices這樣做。您可以編寫一個將過濾器應用於矢量的函數,並且mapslices將負責將其應用於特定維度。