最小行乘以最大行

Roj*_*jer 1 r matrix

我在 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
Run Code Online (Sandbox Code Playgroud)

我想找到一个向量,它是一个 1*3 的矩阵,它的每个元素都是 M 每一行的最小元素乘以 N 对应行的最大元素(例如,向量的第一个元素是矩阵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,]))
Run Code Online (Sandbox Code Playgroud)

但它是那么长。任何人都可以编写更短(或更简单或更容易)的代码吗?

Jan*_*Jan 5

apply(M, 1, min) * apply(N, 1, max)
Run Code Online (Sandbox Code Playgroud)