【问题标题】:Get the min row of a matrix in MATLAB在MATLAB中获取矩阵的最小行
【发布时间】:2011-06-18 04:20:22
【问题描述】:

我有一个像这样的矩阵:

1.0000   24.6914
2.0000   34.5679
3.0000   27.1605
4.0000   30.8642
5.0000   27.1605
6.0000   25.9259
7.0000   14.6914
8.0000   23.4568
9.0000   25.9259
10.0000  22.2222
 ...       ...
23.0000  23.4568

我知道如果我使用

min( MATRIX(:,2) )

我得到了第 2 列的最小值,但我怎样才能得到第 2 列的最小值对应的值?从示例中,我想要的结果是:

7.0000   14.6914

【问题讨论】:

标签: matlab


【解决方案1】:

首先需要获取索引到最小值:

[minVal, minInd] = min( MATRIX(:,2) );

然后访问该索引处的第一行:

MATRIX(minInd,1);

稍微不那么优雅的语法是:

MATRIX(find(MATRIX(:,2)==min(MATRIX(:,2)),1));

【讨论】:

  • 在最后一条语句中,find 是不必要的。
  • 我知道,如果可能的话,逻辑索引是首选,只是认为find 会更容易理解。但感谢您的澄清。
【解决方案2】:
MATRIX(MATRIX(:,2)==min(MATRIX(:,2)),:)

【讨论】:

    猜你喜欢
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    相关资源
    最近更新 更多