Получить минимальную строку матрицы в MATLAB - PullRequest
3 голосов
/ 30 января 2011

У меня есть матрица вроде:

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, но как я могу получить минимальное значение и соответствующее значение из первого столбца? Из примера мой желаемый результат будет:

7.0000   14.6914

Ответы [ 2 ]

6 голосов
/ 30 января 2011

Сначала необходимо получить индекс до минимального значения:

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

, а затем получить доступ к 1-й строке с этим индексом:

MATRIX(minInd,1);

Немного менее элегантный синтаксис будет:

MATRIX(find(MATRIX(:,2)==min(MATRIX(:,2)),1));
3 голосов
/ 31 января 2011
MATRIX(MATRIX(:,2)==min(MATRIX(:,2)),:)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...