访问列表中矩阵的元素

问题描述 投票:0回答:1

我有一个功能:

LUD(A)

这适用于矩阵A上的LU分解算法。现在我必须返回下部和上部矩阵,U和L.为此,我使用了:

return(list(U=U,L=L))

我遇到的问题实际上是访问此列表的元素。现在我可以打电话给U;

U<-LUD(A)[1]

然而,这将U设置为长度为1的列表,而我显然希望它作为矩阵。我读到我可以使用U [[1,1]]访问列表的元素,但是这会返回错误:

Error in U[[1, 2]] : incorrect number of subscripts

我也尝试过使用这个功能;

as.matrix(U) 

然而,这似乎不起作用。

r list matrix
1个回答
2
投票

您可以使用双括号提取元素。如果列表本身具有类似矩阵的维度,则只使用两个索引,但事实并非如此。使用名称进行提取几乎总是更好,以便进行未来验证。

所以你要

both <- LUD(A)
U <- both[["U"]]

但你可以使用

U <- both[[1]]

如果你的结果定义没有改变。你也可以使用

U <- both$U

请注意,$进行部分名称匹配(例如,它匹配U1,而不仅仅是U,如果U碰巧丢失了)。这似乎可以节省打字,但从长远来看,依靠它是不好的:你现在可能有U1而不是U,但是在将来当你突然添加U时你会提取而不是U1

© www.soinside.com 2019 - 2024. All rights reserved.