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