【问题标题】:need help with sorting an array需要帮助对数组进行排序
【发布时间】:2010-07-26 11:55:09
【问题描述】:

假设我有以下数组

1.0000    2.0000    0.4231
1.0000    3.0000    0.8050
1.0000    4.0000    0.7116
2.0000    4.0000    0.6682
2.0000    5.0000    0.4460
2.0000    7.0000    0.5818
3.0000    4.0000    0.0977
3.0000    6.0000    0.5989
3.0000    7.0000    0.3237
4.0000    7.0000    0.2882
5.0000    6.0000    0.1456
5.0000    7.0000    0.3168
6.0000    7.0000    0.2767

我想根据第 3 列的元素以降序对行进行排序。 这样排序后的数组就是这样的:

1.0000 3.0000 0.8050

1.0000 4.0000 0.7116

2.0000 4.0000 0.6682

3.0000 6.0000 0.5989

..................................................

..................................................

请注意,如果我使用“sortrows”,那么数组会自动按升序排序,我无法更改。如果我使用“排序”,每列都会单独排序,这不是我想要的。任何帮助将不胜感激。

-费萨尔

【问题讨论】:

  • 这个数组是如何存储的?您可以从中创建一个表格,然后使用数据视图,您可以按您想要的任何列进行排序...

标签: matlab


【解决方案1】:

要按降序排序,您需要一个负列索引。

sortrows(a, -3)

【讨论】:

    【解决方案2】:

    阅读手册的下一页:

    sortrows(X,COL) 对矩阵进行排序 在指定的列上 向量颜色。

    尤其是我引用的那句话之后的下一句。

    【讨论】:

    • 会投赞成票,除了你为什么不直接发布“下一句”。
    • @Dustin:因为我厌倦了从 Matlab 在线帮助中剪切和粘贴文本。我并不为此感到自豪,但这是我当时所能鼓起的全部力量。
    【解决方案3】:

    sortrows(yourArray,3)

    【讨论】:

      猜你喜欢
      • 2015-06-28
      • 2014-06-29
      • 2021-11-08
      • 2019-12-25
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      相关资源
      最近更新 更多