は、2Dマトリックスa
シフトのpracma
パッケージの例である:循環シフトアレイR
if (is.matrix(a) && length(sz) == 2) {
n <- nrow(a); m <- ncol(a)
s1 <- sz[1] %% n
s2 <- sz[2] %% m
a <- a[(1:n-s1-1) %% n + 1, (1:m-s2-1) %% m + 1]
}
IシフトしようとしていますここではN次元の配列、及び、私は、これまでに作ってみたものです:
else if (is.array(a) && length(sz) > 2) {
n <- dim(a)
l <- length(n)
for (i in 1:l) {
s <- sz[i] %% n[i]
#????
}
私が考えていたアイデアは、別途のためのループ内で循環シフトに各次元になります。しかし、ベクトル/行列型コード(次元があらかじめ与えられている)がこの状況では機能しないので、私はそれを行う方法があるかどうかわかりません...
具体的にはプラクマコード内の各ディメンションを明示的に索引付けする必要がありますが、ディメンションの数がわからない場合は不可能と思われます。あなたは、次のアプローチでこれを行うことができます