【问题标题】:Fast way to get all sub-matrices A[1:mid, (mid+1):n]快速获取所有子矩阵 A[1:mid, (mid+1):n]
【发布时间】:2018-08-29 15:11:49
【问题描述】:

给定一个维度为n x n 的矩阵A,我的目标是获取所有子矩阵A[1:mid, (mid+1):n] 并将它们转换为向量列表。这里mid1 运行到n-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 很大时,它需要很多时间。

【问题讨论】:

  • n=nrow(A);lapply(1:(n-1),function(mid) as.vector(A[1:mid, (mid+1):n] )) ?
  • 如果 lapply 还不够,也许你应该尝试使用 Rcpp

标签: r matrix submatrix


【解决方案1】:

创建一个函数以在应用中执行此操作:

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

【讨论】:

    猜你喜欢
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 2012-11-22
    • 2011-04-17
    • 1970-01-01
    相关资源
    最近更新 更多