如何从同一2D位置的3D阵列中检索值?
问题描述:
比方说,我有如何从同一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,]
显然是行不通的......
答
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])
这给了我所有的值> = 2;我想要在第三维的第一级(即z = 1)处的相同(x,y)位置处的值> A = 2。所以,我想要2,3,4,6,7,8,但不是5. –
是这样的吗?:'A [,, 2] [ind]' – timfaber
如果数组更大,比如说如果有5个水平,我想要在每个级别的价值? –