我有一个 d
-长度相同的矩阵列表 m*n
维度(实际上它是 m*n*d
的张量,但我不知道如何以这种方式存储它)。我想比较同一元素位置上的所有矩阵,并输出每个位置都有最大元素的矩阵。具体来说,矩阵列表是 l = {l[[1], ..., l[[dd]],..., l[[d]]}
.输出应该是一个矩阵 mat
其中 mat[i,j] = max(l[[dd]][i,j])
for all dd
.
我知道一种可行的解决方案是向量化所有矩阵,然后使用 pmax() 但它非常慢。任何人都可以建议一种更快的方法吗?谢谢。
最佳答案
您可以简化为一个数组,然后使用apply
。如果 matrices
是您的矩阵列表,则以下计算您想要的内容:
apply(simplify2array(matrices),c(1,2),max)
关于R最大化矩阵列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50725115/