1111110.............................0 0000001111110.......................0
4个答案
使用 克罗内克
t(克罗内克(诊断(390),代表(1,6))
使用 外面的
+外部(1:390,代表(1:390,each=6),`==`)
使用 [<-
`[<-`( 矩阵(0,nrow=390,ncol=390*6), cbind(rep(1:390,每个=6),seq_len(390*6)), 1 )
标杆管理
fkron<-function(){ t(克罗内克(诊断(390),代表(1,6)) } fouter<-function(){ +外部(1:390,重复(1:390,每个=6),`===`) } fassign<-function(){ `[<-`( 矩阵(0,nrow=390,ncol=390*6), cbind(rep(1:390,每个=6),seq_len(390*6)), 1 ) } 微基准( fkron=fkron(), fouter=fouter(), fassign=fassign(), 单位=“相对”, check=“相等” )
单位:相对 expr最小lq平均中值uq最大neval 弗克伦16.315960 6.027245 4.896574 6.471678 4.177969 10.87032 100 福特尔9.802039 3.907079 3.381873 3.964311 2.789494 11.18444 100 fassign 1.000000 1.0000001.0000001.01000001.0000001.00000 100公司
库(矩阵) x<-稀疏矩阵(rep(1:390,每个=6),1:2340)
x[1:3,1:18]#左上角 #>“ngCMatrix”类的3 x 18稀疏矩阵 #> #>[1,]| | | | | | |。 #> [2,] . . . . . . | | | | | | . . . . . . #> [3,] . . . . . . . . . . . . | | | | | | x[388:390,2323:2340]#右下角 #>“ngCMatrix”类的3 x 18稀疏矩阵 #> #> [1,] | | | | | | . . . . . . . . . . . . #> [2,] . . . . . . | | | | | | . . . . . . #> [3,] . . . . . . . . . . . . | | | | | |
m<-矩阵(rep(1:0,c(6,2340)),390,2340,1) 物体尺寸(m) #>3650616字节 对象大小(x) #>20064字节 微基准::微基准( 致密=基质(rep(1:0,c(6,2340)),390,2340,1), 稀疏=稀疏矩阵(rep(1:390,每个=6),1:2340) ) #>单位:微秒 #>expr最小lq平均中值uq最大neval #>密度2176.6 2331.3 3025.947 2510.55 2692.2 12528.5 100 #>稀疏344.3 374.9 546.522 440.85 493.3 10121.5 100 y<-矩阵(runif(390*2340),390,2340) 微基准::微基准( 密度=交叉触头(m,y), 稀疏=矩阵(交叉prod(x,y)), check=“相等”, 倍数=10, 单位=“相对” ) #>单位:相对 #>expr最小lq平均中值uq最大neval #>密实121.5391 111.6669 77.11411 82.2131 60.29327 51.23242 10 #>稀疏1.0000 1.0000 1.00000 1.00000 1.0000 1.000000 1.00000 10
矩阵(c(rep(1,6),rep(02340)),ncol=2340,nrow=390,byrow=TRUE)
x[1:20,1:20]#左上角 x[371:390,2321:2340]#右下角
>fn<-\(透镜1,m){ +t(多汁(0:(m-1),\(i) +c(rep_len(0,len_1*i), +rep_len(1,len_1), +rep_len(0,len_1*(m-i-1))) + } > >fn(1,3) [,1] [,2] [,3] [1,] 1 0 0 [2,] 0 1 0 [3,] 0 0 1 >fn(2,4) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 1 1 0 0 0 0 0 0 [2,] 0 0 1 1 0 0 0 0 [3,] 0 0 0 0 1 1 0 0 [4,] 0 0 0 0 0 0 1 1 >fn(3,2) [,1] [,2] [,3] [,4] [,5] [,6] [1,] 1 1 1 0 0 0 [2,] 0 0 0 1 1 1