Вырезать части квадратной матрицы в Matlab - PullRequest
4 голосов
/ 05 марта 2010

Есть ли встроенная функция, которая удаляет K-ю строку и столбец квадратной матрицы в Matlab?

Надеюсь, это ясно из диаграммы:

альтернативный текст http://img121.imageshack.us/img121/8145/cutmatrix.png

Ответы [ 3 ]

7 голосов
/ 05 марта 2010

Вот два простых решения:

x([1:k-1 k+1:end],[1:k-1 k+1:end])

или

x(k,:)=[];x(:,k)=[];
2 голосов
/ 05 марта 2010

Если вы хотите использовать эту операцию чаще, хорошей идеей будет создание функции.

% filename: removeK.m

function M1 = removeK (M, k)
  M1 = M([1:k-1 k+1:end],[1:k-1 k+1:end]);
end
1 голос
/ 05 марта 2010

Не встроенная функция, но следующая строка делает трюк:

y = [x(1:(k-1),1:(k-1)) x(1:(k-1),(k+1):end) ; x((k+1):end,1:(k-1)) x((k+1):end,(k+1):end)];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...