如何多重播放两个矩阵,用不同的运算符替换 *,例如 min()

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

考虑:

Library(Matrix)
A <- matrix(c(1,2,3,4,5,6), nrow=3)
A
A %*% t(A)

这给出:

#  A
#      [,1] [,2]
#  [1,]    1    4
#  [2,]    2    5
#  [3,]    3    6
#  
#  A %*% t(A)
#       [,1] [,2] [,3]
#  [1,]   17   22   27
#  [2,]   22   29   36
#  [3,]   27   36   45

问:我想用不同的二元运算符替换乘法 *,例如 min 或 max,最好是在 R 基数中。

r matrix matrix-multiplication
1个回答
0
投票

您可能正在追求以下东西

> a <- asplit(A, 1)

> outer(a, a, \(...) mapply(min, ...))
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    1    2    2
[3,]    1    2    3

> outer(a, a, \(...) mapply(max, ...))
     [,1] [,2] [,3]
[1,]    4    5    6
[2,]    5    5    6
[3,]    6    6    6
© www.soinside.com 2019 - 2024. All rights reserved.