作业帮 > 综合 > 作业

matlab矩阵中如何删除两列都等于0行

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 16:46:21
matlab矩阵中如何删除两列都等于0行
X=[29 0 29 0 0
29 0 29 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 1 28.99 1 1
28.99 1 28.99 1 1];
如何用matlab程序删除第4、5列中等于0的行元素?
即得到X=[28.99 1 28.99 1 1
28.99 1 28.99 1 1];请您指导,
可能是我问题不清楚,我的要求是如果两列同时为0 的行删除,仅一列为0 的不删除.
X=[29 0 29 0 0
29 0 29 0 0
28.99 0 28.99 0 1
28.99 0 28.99 1 0];
要得到的结果是
X=[28.99 0 28.99 0 1
28.99 0 28.99 1 0];
如果是3列删除呢?
X=[29 0 29 0 0 0
29 0 29 0 0 0
28.99 0 28.99 0 1 1
28.99 0 28.99 1 0 1];
要得到的结果是
X=[28.99 0 28.99 0 1 1
28.99 0 28.99 1 0 1];
X=[29 0 29 0 0
29 0 29 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 0 28.99 0 0
28.99 1 28.99 1 1
28.99 1 28.99 1 1];
A = X(:,4:6)==0; % 如果是4、5列就A = X(:,4:5)==0; 如果是3、5列就A = X(:,[3 5])==0;
rows = all(A,2);
X(rows,:) = [];