1
假设我在MATLAB中有一个矩阵。从MATLAB中的矩阵中去除任意列中的元素
>> m = [1 2 3; 4 5 6; 7 8 9]
m =
1 2 3
4 5 6
7 8 9
我有指数列表,我想从基质除去这些索引元素。
索引可能属于任意行或列。不过,我可以保证,如果我要从一行中删除一个元素,我必须从其他所有行中删除一个元素。
一旦所有元素被删除,矩阵中的任何“空白”都应该通过将元素移到左侧来解决。
% for example, removing m(1, 1), m(2, 2), m(3, 3) should yield
m =
2 3
4 6
7 8
% it will NOT yield the following because the elements were shifted up, not to the left.
M =
4 2 3
7 8 6
% removing only m(1, 1) would also be invalid,
% because I must remove an element from all other rows.
对任意数量的索引执行此操作最有效的方法是什么?
的问题是,在暧昧的你并不真正定义您通过一个意思“有效矩阵“。解决方案'[4,2,3; 7,8,6]'是否也是有效的解决方案?你是否保证从每行和每列中删除相同数量的元素? – Dave
@Dave我明白你的意思。起初我并没有考虑过这个问题,因为这要引起我的注意。我澄清了我的问题。希望能消除歧义。 – Zsw