1

每次调用我的代码时,它都会返回几个矩阵,但大小会随着调用而变化,就像下面的示例代码一样。我提前不知道数组大小是多少。如何从返回的内容中确定两个数组的维度?我是否必须在退货中明确地将它们传回,还是有更好的方法来做到这一点?

谢谢

ReturnTwoArrays = function(){
  x1=sample(1:4)[1]
  x2=sample(2:4)[1]
  A1 = matrix(data=1,nrow=x1,ncol=x2)
  x3=sample(1:5)[1]
  x4=sample(2:4)[1]
  A2 = matrix(data=2,nrow=x3,ncol=x4)

  return(c(A1,A2))
}

C1 = ReturnTwoArrays()
C2 = ReturnTwoArrays()

C1
C2
4

1 回答 1

3

这里的问题是您不能c在两个不同的矩阵上使用。您应该返回一个列表:

  ....
  return(list(A1, A2)) 
   }

然后访问该列表的元素:

 C1 = ReturnTwoArrays()
 C1[[1]]
 c2[[2]]
于 2013-08-08T23:49:29.877 回答