删除matlab中的矩阵行

时间:2014-06-20 07:29:58

标签: matlab

如果我的矩阵X只有一列,并且某些行中有一些负值。如何仅删除负值?

示例:

X=[-1; 2; 3; -4; 5]

应该成为:

X=[2; 3; 5]

另外,如何从

中删除值
y=[1; 2; 3; 4; 5]

根据X中的负值找到的位置?此操作后y应为[2; 3; 5]

1 个答案:

答案 0 :(得分:4)

X中删除负值:

您可以将X重新分配给仅包含非负数的X值的向量:

>> X = X(X>=0)
X =
     2
     3
     5

或从X删除负值:

>> X(X<0) = []
X =
     2
     3
     5

根据y中的负值索引从X中删除值是类似的。要么重新分配:

>> y = y(X>=0)
y =
     2
     3
     5

或删除:

>> y(X<0) = []      
y =
     2
     3
     5

如果要根据X中的负值修改两个向量,请记住先对y执行操作,或者为X<0的位置存储逻辑向量。例如:

>> ind = X < 0;
>> X(ind) = []
X =
     2
     3
     5
>> y(ind) = []
y =
     2
     3
     5