簡體   English   中英

r:%*%和參數反轉時的lapply / mapply

[英]r: %*% and lapply/mapply when arguments are reversed

我一直想知道在列表上進行矩陣乘法的最有效方法。

假設我有一個矩陣A和一個矩陣B list

A = matrix(c(1,2,3,4), ncol=2, nrow=2)
B = list(matrix(c(1,2,3,4), ncol=2, nrow=2), matrix(c(4,3,2,1), ncol=2, nrow=2))

我想要AB每個元素b的叉積的列表:

A %*% b

我試圖使用lapply()但無法弄清楚如何確保正確的乘法序列而無需額外的嵌套lapply來轉置每個b ...

lapply(B, '%*%', A) # which gives a list of b%*%A rather than A%*%b
lapply(lapply(lapply(B, t), '%*%', t(A)), t) # gives the answer but geez...

有人可以在這里給我一些指示嗎?

只需在lapply()定義function ,就像這樣

lapply(B, function(x) A%*%x)

暫無
暫無

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

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