在矩阵中同时删除行和列

时间:2016-09-14 15:47:44

标签: matlab matrix

是否可以同时删除矩阵的行和列?

示例:

M = magic(3)

M =

   8   1   6
   3   5   7
   4   9   2

使用单行删除第2列和第2行以获取:

M = 

   8  6
   4  2

1 个答案:

答案 0 :(得分:7)

您可以为行索引和列索引提供索引数组,MATLAB将自动返回所有排列(通常是一个烦人的功能,但这里有一个好处)。

所以你可以这样做:

M([1 3], [1 3])

或者更灵活,您可以使用逻辑索引

M([true false true], [true false true])

或者更一般地说(可能有更多的行和列)

row = 2;        % Could be an array of rows to exclude
column = 2;     % Could be an array of columns to exclude

out = M(~ismember(1:size(M, 1), row), ~ismember(1:size(M, 2), column))