Matlab 删除矩阵中的行
我有两个矩阵Matlab 删除矩阵中的行,matlab,Matlab,我有两个矩阵A“只有一列”和B,它们有多个列,但行数与A相同,如下所示,我要做的是检查A中元素等于-1的行,并从矩阵A和B中删除这一行,所以在下面的例子中,我想从矩阵A和B中删除行索引3和6,有什么建议吗 A= 6 3 -1 6 6 -1 2 4 and B= -0.511774504646677 0.435674206557952 1.07400000000000 -0.509871997194459 0.437576714
A
“只有一列”和B
,它们有多个列,但行数与A
相同,如下所示,我要做的是检查A中元素等于-1的行,并从矩阵A和B中删除这一行,所以在下面的例子中,我想从矩阵A和B中删除行索引3和6,有什么建议吗
A= 6
3
-1
6
6
-1
2
4
and B= -0.511774504646677 0.435674206557952 1.07400000000000
-0.509871997194459 0.437576714010170 1.07400000000000
-0.507969489742241 0.439479221462388 1.07400000000000
-0.506586007364545 0.429374013677012 1.07100000000000
-0.504201297562686 0.439754515167456 1.07100000000000
-0.501883219358233 0.428847974750132 1.07100000000000
-0.501415044713309 0.431930562861652 1.07100000000000
-0.499537085744345 0.433808521830616 1.07100000000000
使用基于
A
的逻辑索引:
B=B(A~=-1,:);
A=A(A~=-1);
与已经提出的几乎相同,但没有计算两次相同的指数。此外,如果更改
A
和B
的更改顺序,也不会失败
idx = A~=-1;
A = A(idx);
B = B(idx);