是否可以同时删除矩阵的行和列?
例:
M = magic(3)
M =
8 1 6
3 5 7
4 9 2
Run Code Online (Sandbox Code Playgroud)
并使用单线移除第2列和第2行以获得:
M =
8 6
4 2
Run Code Online (Sandbox Code Playgroud)
您可以为行和列索引提供索引数组,MATLAB将自动返回所有排列(通常是一个烦人的功能,但这里有一个好处).
所以你可以这样做:
M([1 3], [1 3])
Run Code Online (Sandbox Code Playgroud)
或者更灵活,您可以使用逻辑索引
M([true false true], [true false true])
Run Code Online (Sandbox Code Playgroud)
或者更一般地说(可能有更多的行和列)
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))
Run Code Online (Sandbox Code Playgroud)