Я составил список списков подматриц, учитывая случайную матрицу:
mat <- matrix(1:30, ncol = 5)
mat
n <- nrow(mat)
m <- ncol(mat)
r <- seq_len(min(n, m))
r.combs <- structure(choose(n, r)*choose(m, r), names = r)
print(r.combs)
sum(r.combs)
res <- structure(vector("list", length(r)), names = paste0("r", r))
for (R in r) {
tmp <- list()
R_n <- combn(n, R, simplify = FALSE)
R_m <- combn(m, R, simplify = FALSE)
for(i in seq_along(R_n)) {
for (j in seq_along(R_m)){
tmp <- c(tmp, list(mat[R_n[[i]], R_m[[j]], drop = FALSE]))
}
}
res[[R]] <- tmp
}
res
На данный момент он возвращает весь список, который включает списки матриц.Я пытаюсь сделать так, чтобы мой код возвращал ТОЛЬКО список с наименьшим количеством матриц, в данном случае это res $ r5, но без необходимости вручную записывать res $ r5, чтобы он мог работать с разными размерами, и в этом случае самый маленькийможет быть другое значение r.