最小行乘以最大行

我在R中有两个矩阵,如下所示:

M<-matrix(c(1,4,1,3,1,4,2,3,1,2,1,2),3)

1    3    2    2
4    1    3    1
1    4    1    2

N<-matrix(c(1,1,2,2,3,4,-2,2,1,4,3,-1),3)

1    2   -2    4
1    3    2    3
2    4    1   -1

我想找到一个向量,它是一个矩阵1 * 3,它的每个元素都是M每行的min元素与N对应行的max元素的乘积(例如,向量的第一个元素是矩阵M的第一行的最小元素为1,乘以矩阵N的第一行的最大元素为4,因此向量的第一元素为1 * 4,即4)。 最终答案是:(1 * 4,1 * 3,1 * 4)=(4,3,4)

为了找到这个向量(或矩阵),我编写了以下代码:

c(min(M[1,])*max(N[1,]),min(M[2,])*max(N[2,]),min(M[3,])*max(N[3,]))

但是太长了。谁能写出更短(或更简单或更容易)的代码?

评论
纠缠
纠缠
apply(M, 1, min) * apply(N, 1, max)
点赞
评论