一个Matlab“cell matrix”的R等价物

3

有人知道如何在R中实现Matlab中cell(2,2)的功能吗?

在Matlab中,这将创建一个2x2的“矩阵”,其中每个单元格可以是任何类型的数据,例如另一个矩阵或其他内容。

因此,如果用户需要的话,它可以是一个矩阵的矩阵。

是否有办法在R中实现这一点?


1
例如 matrix(list(matrix(NA,2,2),matrix(1,2,2),1:5,1:5),2,2),虽然您可能不会发现 R 被设计成以这种方式明智地使用,就是许多其他 R 函数可能没有被编写为期望有人创建这样的矩阵。 - joran
1个回答

7
您可以使用以下方式创建此对象:
mm<-matrix(list(), 2, 2)

但请注意,索引运算符有点不同。要提取/分配单个单元格,您将使用

mm[[1,1]]<-matrix(1:15, nrow=3)
mm[[1,2]]<-"hello"
mm[[2,1]]<-list(a=1, b=2)
mm[[2,2]]<-2

请注意,与“标准”矩阵的典型[, ]不同,使用[[ , ]]。仅使用一个[ , ]将返回您请求的元素列表,就像标准列表一样。
正如@joran指出的那样,R中的大多数函数都不希望使用这种类型的对象,因此不要期望可以自动处理此类列表矩阵的函数可以处理矩阵。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接