快速获取所有子矩阵A [1:mid,(mid + 1):n]

时间:2018-03-20 17:16:08

标签: r matrix submatrix

给定维度A的矩阵n x n,我的目标是获取所有子矩阵A[1:mid, (mid+1):n]并将它们转换为向量列表。此处mid1n-1

例如,如果A = matrix(1:16, 4, 4),则结果为res = list(as.vector(A[1:1,2:4]), as.vector(A[1:2,3:4]), as.vector(A[1:3,4:4]))。 for循环可以实现这一点,但n很大时需要很长时间。

1 个答案:

答案 0 :(得分:1)

创建一个在apply中执行此操作的函数:

solve=function(n,x){
  c(x[1:n,(n+1):dim(x)[2]])
}
sapply(1:3,solve,x=A)