如何在列表的元素中分配子矩阵

史蒂夫187

例如:令M为某个矩阵mXn矩阵,其中n足够大以至于无法手动输入。

tmp_list [1] <-M [,1:10]

tmp_list [2] <-M [,11:20]

tmp_list [last] <-M [end-9,end]

我正在研究的问题有点像蒙特卡罗,重复了一个涉及随机mXn矩阵的实验100K次。我对R还是很陌生,我已经使用了for循环来完成它,但是显然花费了很长时间。因此,我希望将每个“实验”分配给列表的元素并使用lapply。

DMT

让我们来看一个简单的案例,您可以从那里扩展它

假设n = 100,发展您的起点

n<-100
byParam<-10
starts<-seq(1, n-(byParam-1), by=byParam)

然后l

tmp_list<-lapply(starts, function(startIndex) M[, startIndex:(startIndex+(byParam-1)])

如果n不是10的整数倍(或者您将“ byParam”设置为等于),则只有一种方法变得更加复杂。如果是这种情况,则可以开发起始索引和结束索引,然后使用mapply代替

#given start and end indeces
tmp_list<-mapply(function(startInd, endInd){
     M[, startInd:endInd}, 
    startInd=starts, endInd=ends)

现在lapply和mapply仍然是迭代的,所以我不希望在时间效率上有大的改进

编辑

在评论中进行讨论之后,这里是整个设置的解决方案,而不仅仅是上述问题

tmp_list<-lapply(1:1000, function(i){
     vect<-sample(c(0,1), 10*1000, replace=TRUE)
     dim(vect)<-c(10, 1000)
     vect
})

让我们分解一下,它使一切变得非常简单。

我们首先创建一个长度为10 * 1000(每个子矩阵中元素的数量)的1和0的随机样本。然后,我们可以通过将向量的dim属性分配为c(10,1000)来将其整齐地转换为矩阵,从而将其形式更改为10行和1000列。然后,将其返回到索引i的列表中。我们套用超过1:1000,或迭代1000次。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在int数组中分配内存

来自分类Dev

如何在Polymer元素定义中分配HTML实体?

来自分类Dev

如何在mongodb中分配ID值?

来自分类Dev

如何随机分配矩阵元素

来自分类Dev

如何在gnu并行中分配变量?

来自分类Dev

如何在DynamoDB中分配外键?

来自分类Dev

如何遍历对象列表并分配子对象?

来自分类Dev

如何在angular的$ parse中分配值

来自分类Dev

如何在满足以下约束的n个元素的数组中分配随机值?

来自分类Dev

GO:如何在2×2可变大小的数组中分配所有元素?

来自分类Dev

如何在PHP类中分配变量?

来自分类Dev

如何在列表中分配不同的列名

来自分类Dev

如何在Vapor Leaf中分配变量?

来自分类Dev

如何在茱莉亚的SymTridiagonal矩阵中分配非对角线条目?

来自分类Dev

如何在嵌套循环中分配列表值?

来自分类Dev

如何在结构中分配空间

来自分类Dev

如何在jq中分配json对象?

来自分类Dev

如何在矩阵的每一行中分配相同的向量

来自分类Dev

如何在Polymer元素定义中分配HTML实体?

来自分类Dev

如何在Java中分配数组中的元素数?

来自分类Dev

如何在列表中分配变量,而不仅仅是列表元素?(对于python)

来自分类Dev

如何在C ++中仅打印数组中分配的元素?

来自分类Dev

如何随机分配矩阵元素

来自分类Dev

如何在承诺中分配范围?

来自分类Dev

如何在WMI调用中分配变量?

来自分类Dev

如何在Gsoap中分配C ++对象

来自分类Dev

我如何在uitable中分配值?

来自分类Dev

当在href标签中使用onMouseOver时,如何在jQuery中分配动态元素ID?

来自分类Dev

在数据 R 中分配子组