簡體   English   中英

訪問列表中矩陣的元素

[英]Accessing elements of a matrix within a list

我有一個功能:

LUD(A)

它將LU分解算法應用於矩陣A。現在,我必須返回上下矩陣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) 

但是,這似乎不起作用。

您可以使用雙括號提取元素。 如果列表本身具有像矩陣這樣的維,則只使用兩個索引,但是沒有。 最好使用名稱進行提取,以確保未來發展。

所以你要

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

但是你可以使用

U <- both[[1]]

如果您對結果的定義沒有改變。 您也可以使用

U <- both$U

需要注意的是$確實部分名稱匹配(例如,它會匹配U1 ,不只是U ,如果U碰巧丟失)。 看來它可以節省鍵入內容,但從長遠來看,依靠它並不是很好:您可能現在擁有U1而不是U ,但是將來當您突然添加U您將提取它而不是U1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM