找回密码
 注册
Simdroid-非首页
查看: 290|回复: 4

[基础概念] 在一个矩阵或向量里面找到最大值,并返回该最大值的位置

[复制链接]
发表于 2010-8-18 10:58:12 | 显示全部楼层 |阅读模式 来自 江苏南京
mathematica有没有一个函数能实现:

在一个矩阵或向量里面找到最大值,并返回该最大值的位置?

关键在于返回最大值的位置。郁闷的是Max函数只能返回最大值却不能给出位置。

请大家帮帮忙~~
发表于 2010-8-18 11:47:21 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
这个实现起来应该不难,C语言的教程里面都有相关的程序。引入一个变量,用于记录矩阵中元素的数值,可以指定元素A(1,1)为初值。对矩阵元素进行遍历循环,并加一条大小判断语句,如果其它元素大于该数值,则更新;最大值元素所在的位置也可以相应的记录,更新。
回复 不支持

使用道具 举报

发表于 2010-8-18 12:09:48 | 显示全部楼层 来自 北京
  1. In[24]:= list = Table[Random[Integer, 100], {i, 1, 200}]
  2. Position[list, Max@list]

  3. Out[24]= {97, 78, 19, 9, 20, 51, 72, 16, 93, 77, 35, 32, 19, 7, 50, \
  4. 77, 89, 70, 47, 88, 52, 76, 8, 81, 21, 34, 52, 58, 72, 49, 9, 58, 87, \
  5. 41, 75, 81, 67, 17, 62, 25, 95, 34, 29, 98, 8, 41, 78, 71, 24, 16, \
  6. 45, 24, 59, 96, 43, 16, 29, 5, 19, 70, 76, 0, 100, 52, 31, 7, 82, 17, \
  7. 98, 24, 38, 20, 37, 68, 56, 84, 42, 44, 13, 100, 49, 80, 93, 62, 78, \
  8. 100, 46, 66, 39, 74, 17, 47, 37, 26, 57, 20, 18, 76, 93, 60, 94, 81, \
  9. 2, 8, 7, 50, 45, 47, 7, 17, 26, 91, 25, 80, 42, 70, 11, 9, 42, 62, 4, \
  10. 76, 22, 3, 11, 91, 81, 61, 22, 32, 87, 16, 38, 30, 27, 8, 87, 88, 70, \
  11. 49, 25, 90, 4, 44, 16, 2, 37, 93, 92, 100, 21, 15, 57, 40, 41, 90, \
  12. 96, 49, 57, 11, 88, 49, 76, 51, 21, 34, 28, 84, 60, 20, 89, 86, 78, \
  13. 89, 87, 83, 33, 75, 9, 90, 88, 83, 92, 86, 41, 55, 38, 75, 44, 28, \
  14. 68, 0, 60, 40, 88, 26, 27, 37, 42, 39}

  15. Out[25]= {{63}, {80}, {86}, {150}}
复制代码
回复 不支持

使用道具 举报

 楼主| 发表于 2010-8-18 12:16:23 | 显示全部楼层 来自 江苏南京
非常感谢ggggwhw~~:)
回复 不支持

使用道具 举报

发表于 2011-3-9 15:19:49 | 显示全部楼层 来自 上海松江区
直接用Ordering函数就可以实现:
  1. Ordering[{3, 6, -5, 1}, -1]
复制代码

结果为:{2}
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2026-1-7 23:33 , Processed in 0.030926 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表