【发布时间】:2018-03-23 15:08:56
【问题描述】:
所以在我的一个名为 place 的函数中,我返回一个矩阵 board 和一个向量 av_targets。
place <- function(ship, orientation, location, board, av_targets){
if (orientation[1] ==-1){
for (i in 0:(as.integer(ships_dim[ship])-1)){
board[location[1],location[2]+(i*as.integer(orientation[2]))]<- keys[ship]
av_targets <- av_targets[av_targets != paste0(location[1],location[2])]
}
}
if (orientation[1] ==1){
for (i in 0:(as.integer(ships_dim[ship])-1)){
board[location[1]+(i*as.integer(orientation[2])),location[2]]<- keys[ship]
av_targets <- av_targets[av_targets != paste0(location[1],location[2])]
}
}
return(c(board,av_targets))
}
然后我在分配中调用位置,例如,v <- place("destroyer",c(1,1),c(4,4), computer_board,computer_av_targets)
但现在我无法访问返回的av_targets。如果我执行 v[2],它将返回矩阵的第二个索引,即 10x10 矩阵。所以我不确定如何从函数返回的内容中检索 av_targets
编辑:我还需要能够从 return 语句中检索整个矩阵。那么我怎样才能访问它。我习惯了 python,我只需调用 v[1] 并获取矩阵,而 v[2] 将获取 av_targets。
【问题讨论】:
-
你可以试试
return(list(board,av_targets)),用列表代替向量。不如试试 v[[2]] -
我尝试了 v[[1]] 和 v[[2]],但它仍然给了我矩阵的第一个和第二个元素
-
我已经编辑了我的评论。请再试一次。
-
啊,谢谢!