Как установить строку в матрице на 0? - PullRequest
5 голосов
/ 27 ноября 2011

У меня проблема с matlab, когда мне нужно найти максимальное число в матрице, а затем найти следующее наибольшее значение в матрице, которое не находится в той же строке или столбце, что и предыдущая.

Мой мыслительный процесс заключается в том, что я найду максимальное значение в матрице, а затем выясню, в какой строке и столбце он находится, а затем установлю остальные значения в строке и столбце на 0. До сих пор яесть это.

a=rand(5)

[row,column]=find(a==max(max(a)))

Я могу найти, какие строки и столбцы максимальные, но это все.Может кто-нибудь помочь мне со следующим шагом или лучшим способом написать эту программу?Спасибо!

1 Ответ

17 голосов
/ 28 ноября 2011

Что вам нужно, это:

a(row,:)=0;

Итак, всего:

a=rand(5)
[row,column]=find(a==max(max(a)))
a(row,:)=0;
[row2,column2]=find(a==max(max(a)))

если у вас есть отрицательные значения в a, вы также можете сделать:

a(row,:)=-inf;
...