在MATLAB中获取矩阵的最小行

cMi*_*nor 3 matlab

我有一个矩阵像:

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
Run Code Online (Sandbox Code Playgroud)

我知道,如果我使用

min( MATRIX(:,2) )
Run Code Online (Sandbox Code Playgroud)

我得到第2列的最小值,但是如何从第一列获得最小值相应的值?从示例中,我想要的结果是:

7.0000   14.6914
Run Code Online (Sandbox Code Playgroud)

Ita*_*atz 6

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

[minVal, minInd] = min( MATRIX(:,2) );
Run Code Online (Sandbox Code Playgroud)

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

MATRIX(minInd,1);
Run Code Online (Sandbox Code Playgroud)

一个不那么优雅的语法是:

MATRIX(find(MATRIX(:,2)==min(MATRIX(:,2)),1));
Run Code Online (Sandbox Code Playgroud)

  • 在最后一个语句中,`find`是不必要的. (2认同)