首页 > 解决方案 > 如何比较并找到常数和矩阵的每个元素之间的最小值?

问题描述

例如,我有一个名为“A”的 3x3 矩阵,其数字介于 1 到 10 之间,常数 = 5。我想创建另一个名为“B”的 3x3 矩阵,其中每个元素都是 A 元素和常数之间的最小值。我知道我可以使用 for 循环轻松做到这一点,但是有没有任何功能或更短的方法可以做到这一点?

例子

A[1,1] = 2 -> B[1,1]=min(A[1,1],constant) ->B[1,1]=2

A[1,2]=10  -> B[1,2]=min(A[1,2],constant) ->B[1,2]=5

标签: r

解决方案


您可以使用pmin

set.seed(123)
A <- matrix(sample(1:10, 9), nrow = 3)
constant <- 5
pmin(A, constant)

#     [,1] [,2] [,3]
#[1,]    3    5    1
#[2,]    5    5    5
#[3,]    2    5    5

推荐阅读