3次元行列を1つの次元を表す3つの行列で部分集合したい。 例:私は、サブセット行列と同じ次元の行列を望む結果サブディジット多色。行列を使った配列
set.seed(1)
A = array(sample(1:10,24, replace=TRUE), dim=c(3,4,2))
ind_dimension1 = matrix(c(1,3,2,1), nrow=2)
ind_dimension2 = matrix(c(4,3,2,1), nrow=2)
ind_dimension3 = matrix(c(1,2,2,1), nrow=2)
、すなわち2×2:
A(sub2ind(size(A), ind_dimension1, ind_dimension2, ind_dimension3))
:MATLABで
# A[1,4,1](=1) A[2,2,2](=8)
# A[3,3,2](=10) A[1,1,1](=3)
これはによって行うことができます
2つの次元、すなわちA2=A[,,1]
の場合、Matlabコマンドsub2ind(size(A2), ind_dimension1, ind_dimension2)
は、Hiebelerが述べたように(ind_dimension2-1)*dim(A2)[2]+ind_dimension1
でRに複製できます(2010)https://cran.r-project.org/doc/contrib/Hiebeler-matlabR.pdf(5ページ)。これは高次元では不可能です。
ありがとうございます。
ありがとうございます。これはまさに私が望んでいたものです。全体として、Matlabと比較してサブセット化はRの方がずっと簡単です。 – Mollifier