無いものは作るという習慣がないのかな
あるかないかわからないものを探そう,教えてというのがなんだかなあ
以下のようなのでどうだ
わざわざわかりにくくしておいた(^_^;)
bdiag2 <- function(L)
{
a <- sapply(L, function(x) {x <- as.matrix(x); return(c(nrow(x), ncol(x)))})
l <- apply(a, 1, cumsum)
n <- nrow(l)
m <- array(0, dim=rowSums(a))
mapply(function(x, i, j) m[i, j] <<- x, L, mapply(seq, c(0, l[-n,1])+1, l[,1]), mapply(seq, c(0, l[-n,2])+1, l[,2]))
return(m)
}
L <- list(matrix(seq(4),2,2),matrix(seq(9),3,3),matrix(seq(25),5,5))
bdiag(L)
bdiag2(L)
mlist <- list(1, 2:3, diag(x=5:3), 27, cbind(1,3:6), 100:101)
bdiag(lapply(mlist, as.matrix))
bdiag2(lapply(mlist, as.matrix))
あるかないかわからないものを探そう,教えてというのがなんだかなあ
以下のようなのでどうだ
わざわざわかりにくくしておいた(^_^;)
bdiag2 <- function(L)
{
a <- sapply(L, function(x) {x <- as.matrix(x); return(c(nrow(x), ncol(x)))})
l <- apply(a, 1, cumsum)
n <- nrow(l)
m <- array(0, dim=rowSums(a))
mapply(function(x, i, j) m[i, j] <<- x, L, mapply(seq, c(0, l[-n,1])+1, l[,1]), mapply(seq, c(0, l[-n,2])+1, l[,2]))
return(m)
}
L <- list(matrix(seq(4),2,2),matrix(seq(9),3,3),matrix(seq(25),5,5))
bdiag(L)
bdiag2(L)
mlist <- list(1, 2:3, diag(x=5:3), 27, cbind(1,3:6), 100:101)
bdiag(lapply(mlist, as.matrix))
bdiag2(lapply(mlist, as.matrix))
※コメント投稿者のブログIDはブログ作成者のみに通知されます