Считайте, что у меня есть матрица nxn. Моя цель - найти элемент max в первом столбце, поменять местами строку, содержащую этот самый большой элемент, и первую строку. Затем я хочу найти элемент max во втором столбце, исключая первую строку, а затем поменять местами строку этого нового элемента max и вторую строку. Опять же, находя элемент max в j-м столбце, исключая строки 1: j-1, затем меняя местами строку max-элемента с j-й строкой, вплоть до n-1-го столбца (как и во время n-го столбца, я мог бы выбрать только из n-го ряда). Моя текущая настройка для этого выглядит следующим образом:
for j = 1:n-1
[~,row]=max(A(j:n,j));
temp = A(row,:);
A(row,:)=A(j,:);
A(j,:)=temp;
...
Хотя функция переключения работает достаточно хорошо, [~, row]=max(A(j:n,j))
может и последовательно делает для матрицы, над которой я специально работаю, выводить строку 1 во время вторая итерация j. Мой мыслительный процесс был следующим: j: n представляет строки, которые мы хотим проверить. Отмечая j = 2, для его второй итерации я надеялся, что это будет искать строку 2-n-n; однако, кажется, все еще проверяют каждую строку.
Хотя этот вопрос уже задавался, я обнаружил, что ответом была та же строка кода.