У меня есть произвольная n-на-n матрица. Я хочу посмотреть на множества столбцов и строк матрицы и сделать некоторый анализ на них, например, установив все элементы определенного набора строк и столбцов равными нулю. Для этого мне нужно проанализировать все комбинации строк и столбцов.Петли на матрице для просмотра всех комбинаций строк и столбцов
Например, если n = 3, процесс последовательно выбирает строку и столбцы 1, 2, 3, 12, 13, 23, 123 и создает новую переменную для каждой строки и столбца.
Я в настоящее время метод ниже для матрицы размером 4:
H = [some 4-by-4 matrix]
for i1 = 1:n
for i2 = 1:n
for i3 = 1:n
for i4 = 1:n
% Set all rows and columns of all variables equal to 0
H(:,i1) = 0;
H(i1,:) = 0;
H(:,i2) = 0;
H(i2,:) = 0;
H(:,i3) = 0;
H(i3,:) = 0;
H(:,i4) = 0;
H(i4,:) = 0;
% Some more analysis on i1, i2, i3, i4...
end
end
end
end
Это очень грубый метод, но это, кажется, работает. Очевидно, что этот метод рассматривает множество (1,1,1,1), которое сначала эквивалентно только (1), то (1,1,1,2), что эквивалентно (1,2), то (1 , 1,1,3), что эквивалентно (1,3) ... и так далее ...
Проблема в том, что это не общий процесс для любой матрицы размера n, это только неочищенный процесс для матрицы размера 4.
Есть ли способ обобщить процесс так, чтобы он работал для любой произвольной матрицы n-на-n?
Спасибо!
Это кажется особым случаем применения [общего вопроса] (http://stackoverflow.com/questions/21895335/generate-a-matrix-containing-all-combinations-of-elements-taken-from-n -векторы) спросили и ответили Луи Мендо.Вы должны попытаться применить свое решение к своей проблеме, и если вы застряли, попросите еще раз. –
Спасибо за это @TheMinion, я посмотрю на это сейчас :). – Owen
Итак, индексы строк и столбцов будут одинаковыми во всех этих комбинациях? – Divakar