首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将矩阵中的每个值与对应列的最大值相除

如何将矩阵中的每个值与对应列的最大值相除
EN

Stack Overflow用户
提问于 2020-04-27 23:12:04
回答 4查看 67关注 0票数 2

例如:

m <- matrix(c(1:9),3,3)

每列的最大值将是...

n <- matrix(c(3,6,9),1,3)

然后,我如何执行一个操作,使输出是一个3x3矩阵,其值为:第一列中的0.33,0.66,1 (第一列除以3) 0.66,0.83,6第二列中的0.66,0.83,6(第二列除以6)第三列中的0.77,0.88,9(第三列除以9)。

EN

回答 4

Stack Overflow用户

发布于 2020-04-28 02:05:37

我们可以通过'm‘的col来复制'n’

代码语言:javascript
复制
m/n[col(m)]
#         [,1]      [,2]      [,3]
#[1,] 0.3333333 0.6666667 0.7777778
#[2,] 0.6666667 0.8333333 0.8888889
#[3,] 1.0000000 1.0000000 1.0000000
票数 3
EN

Stack Overflow用户

发布于 2020-04-27 23:14:21

使用apply

代码语言:javascript
复制
apply(m, 2, function(x) x / max(x))

          [,1]      [,2]      [,3]
[1,] 0.3333333 0.6666667 0.7777778
[2,] 0.6666667 0.8333333 0.8888889
[3,] 1.0000000 1.0000000 1.0000000

这是你要找的东西吗?

票数 2
EN

Stack Overflow用户

发布于 2020-04-27 23:21:26

使用base R,您可以使用pmax,如下所示

代码语言:javascript
复制
> t((u<-t(m))/do.call(pmax,data.frame(u)))
          [,1]      [,2]      [,3]
[1,] 0.3333333 0.6666667 0.7777778
[2,] 0.6666667 0.8333333 0.8888889
[3,] 1.0000000 1.0000000 1.0000000
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61462067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档