如何从Matlab中的矩阵中丢弃一些不需要的行?

时间:2015-06-04 17:33:36

标签: matlab

我有一个矩阵

A= [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16; 17 18 19 20]

我想对这个矩阵做一些计算。但实际上我并不需要所有的行。所以我必须在进行计算之前丢弃上面矩阵中的一些行。丢弃3行后,我们将有一个新的矩阵。

B= [1 2 3 4; 9 10 11 12; 17 18 19 20];

现在我必须使用B进行其他一些计算。那么如何从matlab中的矩阵中丢弃一些不需要的行呢?任何建议都会有所帮助。感谢。

2 个答案:

答案 0 :(得分:3)

试试这个:(当要保留的行数较少时使用)

%// Input A
A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16; 17 18 19 20];

%// Rows (1-3,5) you wanted to keep
B = A([1:3, 5],:)

<强>输出:

B =

 1     2     3     4
 5     6     7     8
 9    10    11    12
17    18    19    20

备选方案:(当丢弃的行数较少时使用)

%// rows 2 and 3 discarded
A([2,3],:) = [];

<强>输出:

>> A

A =

 1     2     3     4
13    14    15    16
17    18    19    20

注意:此处(在备用方法中),输出会替换原始A。因此,如果您以后需要,则需要备份A。你可以在丢弃操作之前执行备份输入矩阵

%// Input A is backed up in B
B = A;

答案 1 :(得分:2)

您可以选择要保留的行的索引:

A([1,3,5],:)

ans =

     1     2     3     4
     9    10    11    12
    17    18    19    20