矩阵

时间:2018-04-30 15:39:37

标签: r matrix vectorization linear-algebra

我想做类似于Blockwise sum of matrix elements的事情,但是使用任意给定的切割模式。例如,如果行被拆分为row_split = list(block_1=1, block_2=2:3, block_3=4),则列将被拆分为col_split = list(block_1=1:3, block_2=4),然后输出为2x3矩阵,每个元素都是块的和。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

一个简单的vapply语句应该可以解决这个问题:

vapply(row_split,function(x){
    a<-numeric(4)
    a[x]=1
    a
},numeric(4))

结果:

     block_1 block_2 block_3
[1,]       1       0       0
[2,]       0       1       0
[3,]       0       1       0
[4,]       0       0       1

你需要转置其中一个,但它应该可以解决问题。