2017-04-24 198 views
0

比方说,我有如何从同一2D位置的3D阵列中检索值?

A = array(1:8,c(2,2,2)) 
ind = which(A[,,1]>=2) 

给出一个数组,产生

[1] 2 3 4 

现在,我该如何访问2,3,4值在每个级别中的第三个维度(所以,2,3,4 ,6,7,8),但是不是 5?
A[ind,]显然是行不通的......

回答

1
ind = which(A[,,c(1,2)]>=2,arr.ind=T) 
A[ind] 

编辑

从多维数组获取一个数组的索引:

A = array(1:8,c(2,2,2)) 
ind = which(A[,,1]>=2,arr.ind=T) 
apply(A, 3, function(x) x[ind]) 
+0

这给了我所有的值> = 2;我想要在第三维的第一级(即z = 1)处的相同(x,y)位置处的值> A = 2。所以,我想要2,3,4,6,7,8,但不是5. –

+0

是这样的吗?:'A [,, 2] [ind]' – timfaber

+0

如果数组更大,比如说如果有5个水平,我想要在每个级别的价值? –