Есть ли встроенная функция, которая удаляет K-ю строку и столбец квадратной матрицы в Matlab?
Надеюсь, это ясно из диаграммы:
альтернативный текст http://img121.imageshack.us/img121/8145/cutmatrix.png
Вот два простых решения:
x([1:k-1 k+1:end],[1:k-1 k+1:end])
или
x(k,:)=[];x(:,k)=[];
Если вы хотите использовать эту операцию чаще, хорошей идеей будет создание функции.
% filename: removeK.m function M1 = removeK (M, k) M1 = M([1:k-1 k+1:end],[1:k-1 k+1:end]); end
Не встроенная функция, но следующая строка делает трюк:
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)];