matlab矩阵中如何删除两列都等于0行 ?
X=[2902900290290028.99028.990028.99028.990028.99028.990028.99028.990028.99028.990028....
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]; 展开
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]; 展开
4个回答
展开全部
rows=all(X(:,4:5),2)==0;
X(rows,:)=[];
X(rows,:)=[];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过if语句来判断是否为零,在对为零的位置进行赋空值(NULL)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
eye([3,5])主对角线全1
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
fliplr(eye([3,5]))副对角线全1
ans =
0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
fliplr(eye([3,5]))副对角线全1
ans =
0 0 0 0 1
0 0 0 1 0
0 0 1 0 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];
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,:) = [];
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,:) = [];
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询